Vue 如何监听数组变化

监听方式包含两部分

一,通过重写data 对象中Array原型上的方法,push/pop/shift/unshift/soft/reverse/splice,当调用这些方法修改数组时,会触发更新

二,通过defineproperty这个方法,不能监听到this.list[1] = 100;this.list.length = 0;这两种修改数组的方式,所以要通过Vue.set(this.list, 0, 100)或者this.list[0] = 100;this.list.splice(0, 0);手动刷新下才行。

但是[{name: 'pig'}],修改this.list[0].name = '占山';这个时会触发更新的,因为它遍历了数组,如果是对象,会observe它。

掌控自己,掌控命运
原文地址:https://www.cnblogs.com/qiuxd/p/14502359.html