简单记录一下vue中修改了数组或者对象以后数据更新,但是视图没有更新的问题(vue2),vue中的代码,但是用的js的写法

一、数组

  • 使用数组重写的方法
const arr = ['arr1','arr2'];
arr.splice(0,1,'arr0');
console.log(arr) //['arr0','arr2']
  • 使用深拷贝重新赋值给新数组直接通过下标修改
const arr =  ['arr1','arr2'];
const newArr = JSON.parse(JSON.stringify(arr));
newArr[0] = 'arr0';
console.log(newArr);
  • 使用$set
const arr =   ['arr1','arr2'];
this.$set(this.arr,0,'arr0');

二、对象

  • 使用深拷贝重新赋值给新对象然后赋值
const obj = {a:"a"};
const newObj = JSON.parse(JSON.stringify(obj ));
newObj.b = 'b';
console.log(newObj);
  • 使用Object.assign()合并对象的方法
const obj = {a:"a"};
Object.assign(obj,{b:"b"});
console.log(obj);
  • 使用$set
this.$set(obj,b,'b');

**注:**这里的JSON深拷贝并不适用于全部使用场景(以后会更新JSON深拷贝会出现的问题)


版权声明:本文为apple_52295201原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。