Vue3 toRefs转换详解

把一个reactive对象转换为一个普通对象,并且该普通对象上的每个属性指向的是 ref对象,这些 ref 对象由原对象相应的属性值创建。

不理解?好吧,代码才是最好的解释。

const state = reactive({
  foo: 1,
  bar: 2
})

const stateAsRefs = toRefs(state)
/*
stateAsRefs 为一个普通对象:
{
  foo: Ref<1>,
  bar: Ref<2>
}

*/

state.foo++
console.log(stateAsRefs.foo.value) // 2

stateAsRefs.foo.value++
console.log(state.foo) // 3

例子中的state 对象和 stateAsRefs 的对象的属性被相互链接在一起了,state 对象里的属性被更改,stateAsRefs 也被更改,反之亦然。

真的挺简单的,难道不是吗?

教程来源于Github,感谢SJanJan大佬的无私奉献,致敬!

技术教程推荐

邱岳的产品手记 -〔邱岳〕

如何做好一场技术演讲 -〔极客时间〕

从0开始学大数据 -〔李智慧〕

说透中台 -〔王健〕

体验设计案例课 -〔炒炒〕

说透区块链 -〔自游〕

李智慧 · 高并发架构实战课 -〔李智慧〕

大厂广告产品心法 -〔郭谊〕

徐昊 · AI 时代的软件工程 -〔徐昊〕