Vue 3中ref和shallowRef的引用类型在同一函数中修改值为何导致视图同步更新?

新手上路,请多包涵

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

阅读 1.1k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题