vue data数据更改后vie视图不改变

背景:在vue开发中会遇到data数据更改后view试图不会进行响应式更新的情况

以下4种情况不触发vue响应式更新!!

不能检测到的数组变动是:

1、当利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue;

2、当修改数组的长度时,例如:vm.items.length = newLength;

不能检测到的对象变动是:

3、向响应式对象添加属性;

4、向响应式对象删除属性;

解决方法:

数组

arry[index]=xxx;//无效 不触发

改为

this.$set(arry, index, xxx);

 

对象解决方法



let that=this,obj1,newObj;

obj1={sex:"男"};

newObj=Object.assign(that.oneTeacher,obj1); //无效,并未替换原有对象


this.$set(obj1,'sex','女')  

or

that.oneTeacher=Object.assign({},that.oneTeacher,obj1);

 

你可能感兴趣的:(vue笔记,vue)