7.Vue - 监测数据的原理、Vue.set、vm.$set

监测数据的原理
目录
监测数据的原理
一、更新时的问题
二、Vue检测对象
三、Vue检测数组
3.1 push 添加
3.2 shift 删除
3.3替换
3.4 原理
四、Vue.set
4.1 追加属性
4.2 案例
【7.Vue - 监测数据的原理、Vue.set、vm.$set】五、总结
5.1 代码练习
5.2 总结
一、更新时的问题
为什么我们要研究一下Vue监测数据的原理?
以防我们后续在给data赋值或者修改data中数据时导致修改不成功
比如下面这个例子:
初识vue 人员列表

  • {{p.name}}-{{p.age}}-{{p.sex}}

当我们点击按钮之后,马冬梅的信息会随之改变
我们不难发现:页面中的内容修改了,Vue中的数据也修改了

methods: {updateMei(){//this.persons[0].name = '马老师'//this.persons[0].age = 50,//this.persons[0].sex = '男'this.persons[0] ={id:'001',name:'马老师',age:50,sex:'男'}}},
初始界面和上面还是相同的,但是我们点击按钮之后,页面和Vue并没有反应
原因:从代码的层面来说,我们真的把数组中的某个元素修改了,但是Vue并没有检测到
下面的这样图就是很好的证明
我们直接操作的数组的索引值,用赋值的方式去改(具体参照Vue监测数组数据的原理)
数组中 [0] [1] [2].....这种没有和,但是[0] [1]里面的属性有和,比如name、age、sex都会有和
二、Vue检测对象
可以先复习一下这篇文章的数据代理
2.Vue — 模板语法、数据绑定、el与data的写法、数据代理-CSDN博客
vm实例的name和其实都来自_data,_data中的数据来自于我们所传入的配置项data,也就是vm._data=http://www.kingceram.com/post/data
加工我们传入的data数据(黄色框)
将我们data中的每一组key-value形成和
vm._data=http://www.kingceram.com/post/data
7.Vue - 监测数据的原理、Vue.set、vm.$set

文章插图
流程图
这个地方为什么要加工一下?
第一步加工data数据后就可以做响应式了 。
响应式:数据变了 , 页面也跟着变就是响应式
当我们修改了_data.name的时候,就会引起name的调用,里面有一个调用可以重新解析模板,生成新旧DOM,新旧DOM对比生成新的页面
三、Vue检测数组
初识vue 、学校信息学校名称:{{school.name}}学校地址:{{school.address}}校长是:{{school.leader}}