vue3 reactive 是否能接收基础数据类型并使其响应式
在讨论这个问题之前,我们首先需要了解 reactive 的本质。reactive 是 vue3 中用来创建响应式对象的函数。它接收一个对象作为参数,并返回一个响应式代理。这意味着,任何对该对象的修改都会触发界面视图的更新。
那么,问题来了,reactive 能否接收基础数据类型并使其响应式呢?答案是不行。vue/reactivity 的源码表明,reactive 代理对象来实现响应式,而不是基础数据类型。
demo 中之所以发生了响应式变化,是因为引入了 msgRef,它是一个响应式对象。在 vue3 中,依赖收集是以组件为单位的。所以,render 会收集对 msgRef 的依赖。当 msgRef 更新后,渲染函数会重新运行。由于使用了 diff 算法,恰好更新了 msgReactive。也就是说,msgReactive 的响应式是间接实现的,是由 msgRef 带动的。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
【小浪云服务商 - 服务器12元起 - 挂机宝5元起】
THE END
暂无评论内容