vue3的toRef和toRefs
vue3的toRef和toRefs
toRef
可以用来为源响应式对象上的某个 property 新创建一个 ref。然后,ref 可以被传递,它会保持对其源 property 的响应式连接。
从定义中可以看出,toRef针对的是一个响应式对象的prop。他的作用是创建一个ref对象,他的值指向另一个对象中的某个属性。
简单来说就是将响应式对象的某一个值单独提供给外部使用,并且也是响应式的。
1 | <template> |
在实际应用当中也是运用非常多的,当模板在渲染一个对象内部的值的时候,需要每次都要去逐层的去读取相应的数据,在模板当中看着非常的不友好,有了这个方法之后就简便很多。
toRefs
将响应式对象转换为普通对象,其中结果对象的每个 property 都是指向原始对象相应 property 的 ref。
可以看到toRefs和toRef很像,从名字上他们长的差不多,从作用看他们确实也是差不多。只不过一个是对对象属性单个处理,一个是进行批量处理。
1 | <script setup> |
toRefs的一大用途就是变相解构Proxy,首先了解一个常识,Proxy如果解构,基本数据会丢失响应式。
总结:
- 初衷: 在保证不丢失响应式的前提下,把对象解构,方便对象数据分解和扩散
- 前提:针对的是响应式对象(reactive封装的)非普通对象
- 注意: 不创造响应式(那是reactive的事情),只是延续响应式
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦志博!
评论