Vue · VUE0007
Do not destructure setup props
Classic setup(props) props lose reactivity when destructured directly.
vue/reactivity/no-setup-props-destructuresrc/rule-packs/vue/rules/vue/no-setup-props-destructure.ts Upstream docs Run this rule
pnpm vite-doctor . --framework vue --rules vue/reactivity/no-setup-props-destructure
Why it matters
The props proxy is reactive, but local destructured bindings are snapshots.
Recommended fix
Use props.foo, toRefs(props), or <script setup> reactive props destructuring.
Useful links
Example
Preserve prop reactivity
Before
<script setup lang="ts">
const { count } = defineProps<{ count: number }>()
</script>
After
<script setup lang="ts">
const props = defineProps<{ count: number }>()
const count = toRef(props, 'count')
</script>