注意Vue中修改列表渲染的数组或对象时,页面没有同步改变的问题

1,044 阅读1分钟

当列表的数据格式为数组时:

  1. 如果直接通过数组下标进行数据操作,页面是不会发生改变的。因为vue不支持直通通过数组的下标去改变数组
  2. 要想改变数组同时页面也改变,操作数组有两种方法:
    1. vue 支持数组修改的7个方法:pop、push、shift、unshift、splice、sort、reverse,可以通过数组的这7个方法对数组进行操作,同时改变页面上的数据
    2. 改变数组的引用,可以理解对数组重新赋值,实际上就算更改数组的引用地址。

当列表的数据格式为对象时:

  1. 如果直接通过新增对象属性的写法,即:vm.suerInfo.address = 'beijing',此时页面是不会显示新增的属性
  2. 想要改变对象同时页面也改变的方法是:更改对象的引用

如果我们非要使用数组下标或直接新增对象属性,页面也跟着改变时,可以使用vue提供的set方法。 使用方式:

数组:Vue.set(数组,下标,值),或通过vue的实例:vm.$set(数组,下标,值);

对象:Vue.set(对象,属性,值),或通过vue的实例:vm.$set(对象,属性,值);