--- title: Component Refs Require defineExpose with Script Setup impact: HIGH impactDescription: Parent components cannot access child ref properties unless explicitly exposed type: gotcha tags: [vue3, template-refs, script-setup, defineExpose, component-communication] --- # Component Refs Require defineExpose with Script Setup **Impact: HIGH** - Components using ` ``` ```vue ``` **Correct:** ```vue ``` ```vue ``` ```vue ``` ```javascript // Options API equivalent using expose option export default { expose: ['count', 'increment', 'reset'], data() { return { count: 0, internalState: 'private' } }, methods: { increment() { this.count++ }, reset() { this.count = 0 } } } ``` ## Best Practice Reminder Component refs create tight coupling between parent and child. Prefer standard patterns: ```vue ``` ## Reference - [Vue.js Component Refs](https://vuejs.org/guide/essentials/template-refs.html#ref-on-component) - [Script Setup - defineExpose](https://vuejs.org/api/sfc-script-setup.html#defineexpose)