vue3中关于ref和shallowRef声明的引用类型在同一函数中修改值,会造成shallowRef声明的视图部分也更新的问题
在视图中声明
<h1>
{{ r }}
</h1>
<h2>
{{ sr }}
</h2>
<button @click="change">修改</button>
js代码
const r = ref({name:'111111'})
const sr = shallowRef({name:'222222'})
const change = () => {
r.value.name = '333333'
sr.value.name = '444444'
console.log(r,sr);
}
这样会造成sr也会同步更新,然后注释掉r.value.name = '333333'后,就不会。
我查询过是因为ref底层和shallowRef都会触发triggerRefValue造成视图更新,但是我还是没有理解为什么reftriggerRefValue会更新另一个数据依赖
查阅过资料,链接给出:https://juejin.cn/post/7264503868137127971
跟你一模一样的问题。答案楼里有人说了: