【Vue3】ref, reactive, shallowRef, shallowReactive, toRaw, markRaw, readonly, shallowReadonly, isRef, isReactive, isReadonly, isProxy
ref 的实现
- ref实现响应式(基本类型)也是采用Object.definedProperty()来实现的 getter和setter
- ref实现响应式(对象类型)也是采用Proxy来实现(底层调用reactive方法)
reactive 的实现
- reactive是采用Proxy来实现 只能对引用类型生效,如对象数组。
- 数组异步赋值问题会导致响应式失效,可以通过push方法改变数据。或者将数组包裹在对象中。
ref 和 reactive 的区别
- ref 支持所有类型,reactive只支持引用类型。
- ref 取值都需要加.value(模板里是不需要加.value的) , 而reactive不需要加。
ref 和 shallowRef 的区别(shallowReactive同理)
- ref是深层次的响应式。
- shallowRef是浅层次的响应式(只有第一层数据是响应式),只能监听到.value就结束了。或者手动调用triggerRef()触发视图更新
- ref和shallowref不能一起写 不然会造成shallowref的更新(因为triggerRef()方法的影响)
ref 和 Ref 的区别
- Ref是TS对应的接口,申明类型的时候使用。
toRaw 和 markRaw
- toRaw会脱去Proxy的外衣,使其失去响应式
- 给响应式对象添加新属性,markRaw可以给响应式对象添加非响应式的新属性
readonly 和 shallowReadonly
- readonly所有层级的属性都不允许修改
- shallowReadonly只有第一层级的属性不允许修改
判断响应式数据
- isRef, isReactive, isReadonly, isProxy
洗尽铅华始见金,褪去浮华归本真
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现