数组更新检测
vue数组更新检测
很多时候我们改变了数组或对象,vue视图却没发生变化
let example1 = new Array()
example1[0].ele = 'xxx'
example.length = newlength
//Vue 不能检测变动的数组
变更方法vue.js官方文档
Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。这些被包裹过的方法包括:
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
example1.items.push({ message: 'Baz' })
替换数组
变更方法,顾名思义,会变更调用了这些方法的原始数组。相比之下,也有非变更方法,例如 filter()、concat() 和 slice()。它们不会变更原始数组,而总是返回一个新数组。当使用非变更方法时,可以用新数组替换旧数组:
example1.items = example1.items.filter(function (item) {
return item.message.match(/Foo/)
})