type
status
date
slug
summary
tags
category
icon
password
toRef
toRef
针对响应式对象 (reactive
封装的) 的属性创建一个ref
,既保留了响应式,又保留了引用(浅拷贝,改变值时,原对象的值也会发生改变),如果是非响应式对象使用它,则只会改变数据值,不会改变视图值。接收两个参数,第一个参数是接收的响应式对象,第二个参数是这个对象的属性
应用场景:比如我们传参的时候,只想传当前对象里的某个属性,那么我们就可以使用
toRef
将这个属性单独提出来,作为参数传递,而不必将整个对象都作为参数传过去源码解析
如果是ref 对象直接返回 否则 调用 ObjectRefImpl 创建一个类ref 对象
类ref 对象只是做了值的改变 并未处理 收集依赖 和 触发依赖的过程 所以 普通对象无法更新视图
toRefs
把每个
reactive
对象的属性都变成了ref
,toRefs
的使用场景主要是方便解构时使用源码解析
源码里是通过对象循环调用了
toRef
来实现的toRaw
将响应式对象转化为普通对象
源码解析
源码里是通过 ReactiveFlags 枚举值 取出 proxy 对象的 原始对象
- 作者:衔蝉
- 链接:https://xianchan.ah.cn/article/vue3-6
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章