是的,Ref 和 Reactive 都是反应式变量包装器。
const refVar = ref(true)
const reactiveVar = reactive({ haha: 'LoL' })
这里两者refVar
和reactiveVar
都只是包装变量,以保持其内部值的反应性。ref
正如您所说,和之间的区别在于reactive
单个ref
变量和reactive
字典结构变量。
ref
关注其value
属性的变化,一旦发生变化,它就会发出反应事件,以便观察者可以自动更新。但reactive
照顾它的所有属性。
如果您只使用响应式,那么为单个变量保持响应式会非常不舒服。
const refSingle = reactive({ value: 'I wanna be used with Ref' })
你应该refSingle.value
一直在模板端调用。
如果仅使用 ref,则很难保持对 dict 类型变量的反应性。
const reactiveDict = ref({
type: 'dictionary',
purpose: 'reactive'
})
在这种情况下,如果你在脚本中使用它,你应该value
每次都使用属性。
reactiveDict.value = {
...reactiveDict.value,
purpose: 'ref'
}
在这种情况下,您可以使用reactive
而不是ref
.