Vue3 中 reactive 函数能否使基础数据类型变得响应式?
vue3 reactive 是否能接收基础数据类型并使其响应式
在讨论这个问题之前,我们首先需要了解 reactive 的本质。reactive 是 Vue3 中用来创建响应式对象的函数。它接收一个对象作为参数,并返回一个响应式代理。这意味着,任何对该对象的修改都会触发界面视图的更新。
那么,问题来了,reactive 能否接收基础数据类型并使其响应式呢?答案是不行。vue/reactivity 的源码表明,reactive 代理对象来实现响应式,而不是基础数据类型。
demo 中之所以发生了响应式变化,是因为引入了 msgRef,它是一个响应式对象。在 Vue3 中,依赖收集是以组件为单位的。所以,render 会收集对 msgRef 的依赖。当 msgRef 更新后,渲染函数会重新运行。由于使用了 diff 算法,恰好更新了 msgReactive。也就是说,msgReactive 的响应式是间接实现的,是由 msgRef 带动的。
以上就是Vue3 中 reactive 函数能否使基础数据类型变得响应式?的详细内容,更多请关注其它相关文章!