---
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 `
{{ count }}
```
```vue
```
**Correct:**
```vue
{{ count }}
```
```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)