Skip to content

noVueSetupPropsReactivityLoss

¥Summary

¥How to configure

biome.json
{
"linter": {
"rules": {
"nursery": {
"noVueSetupPropsReactivityLoss": "error"
}
}
}
}

¥Description

禁止在 Vue 项目中解构传递给 setupprops

¥Disallow destructuring of props passed to setup in Vue projects.

在 Vue 的组合 API 中,必须使用 props.propertyName 访问 props 以保持响应式。直接在 setup 函数参数中解构 props 会导致生成的变量失去其响应式特性。

¥In Vue’s Composition API, props must be accessed as props.propertyName to maintain reactivity. Destructuring props directly in the setup function parameters will cause the resulting variables to lose their reactive nature.

¥Examples

¥Invalid

export default {
setup({ count }) {
return () => h('div', count);
}
}
code-block.js:2:9 lint/nursery/noVueSetupPropsReactivityLoss ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Destructuring `props` in the `setup` function parameters loses reactivity.

1 │ export default {
> 2 │ setup({ count }) {
^^^^^^^^^
3 │ return () => h(‘div’, count);
4 │ }

To preserve reactivity, access props as properties: `props.propertyName`.

¥Valid

export default {
setup(props) {
return () => h('div', props.count);
}
}

¥Related links