torefs 用于解构响应式对象时保留响应性,因直接解构会得到普通变量而脱离响应链;需用 .value 访问,pinia 中推荐 storetorefs 替代。

使用 toRefs 是为了在解构响应式对象(比如 Pinia Store 或 reactive 返回的对象)时,**保留每个属性的响应性**。直接解构会丢失响应式,而 toRefs 把每个属性转为独立的 ref,再解构就安全了。
为什么直接解构会丢失响应性?
Vue 的响应式依赖于“访问代理对象上的属性”这一行为。一旦你写成:
const { count, name } = store;得到的就是普通 JS 变量,和原始响应式数据不再关联。后续修改 count 不会触发视图更新,读取也不再是响应式追踪的源头。
toRefs 怎么用?三步到位
- 从
vue导入:import { toRefs } from 'vue' - 对响应式对象(如
store)调用:const { count, name } = toRefs(store) - 使用时记得加
.value(因为现在是 ref):比如{{ count.value }}或count.value++
更优雅的写法:配合 setup 语法糖 + defineStore
在 `
