【Vue2.x】vue2 响应式的理解
vue2给对象动态添加响应式属性
vue2里对象的响应式是通过Object.defineProperty()实现
保持响应式的关键是不允许直接赋值修改data里定义对象(数组),因为直接赋值断了vue.js 对对象(数组)的引用,使其失去响应式
1. 对象响应性
1.1 操作对象单个属性
使用Vue.set()或this.$set()
- 第一个参数,是目标对象
- 第二个参数,是要添加的属性名字
- 第三个参数,是要属性值
1.2 给对象批量添加响应式属性
-
Object.assign() 直接覆盖同名key到原对象上,保持响应式
-
扩展运算符 不推荐,不过会新建一个对象。
tips:有人不理解,为什么扩展算符新建了一个对象再赋值难道不会断开vue对其的引用吗?
扩展运算符新建的对象是源对象的浅拷贝,所以有引用关系,等于你使用扩展运算符实现对象的响应式,中间又会多一层引用,不推荐。
2. 数组响应式
数组不推荐使用vue提供的set方法
2.1 操作数组单个数据
- push():向数组末尾添加一个或多个元素,并返回新的长度。
- pop():删除并返回数组的最后一个元素。
- shift():删除并返回数组的第一个元素。
- unshift():向数组的开头添加一个或多个元素,并返回新的长度。
- splice():删除现有元素并/或添加新元素。
- sort():对数组的元素进行排序。
- reverse():颠倒数组中元素的顺序。
2.2 对数组进行批量替换
- arr.splice(0,arr.length,...target)
洗尽铅华始见金,褪去浮华归本真
分类:
Vue2 相关 / Vue2.x 基础
, Vue2 相关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY