defineExpose — expose methods. script setup — private by default.
defineExpose:
Without defineExpose:
1<!-- Child -->2<script setup>3const reset = () => { /* ... */ }4defineExpose({ reset })5</script>67<!-- Parent -->8<script setup>9import { ref } from "vue"10const child = ref(null)11child.value.reset() // OK12</script>
Key: defineExpose for parent access.