1.数组考虑性能原因没有用 defineProperty 对数组的每一项进行拦截,而是选择对 7 种数组(push,shift,pop,splice,unshift,sort,reverse)方法进行重写
2.Vue中$set的用法:
由于JavaScript的限制,Vue不能检测以下数组的变动(只要值的地址没有改动,vue是检测不到数据的变化的):
1.利用索引值直接设置一个数组项时:
vm.item[index]=newValue
2.当修改数据长度时
vm.items.length=newLength
3.由于JavaScript的限制,Vue不能检测对象属性的添加或删除。
解决数据没有双向绑定的时候,我们就需要使用set了
this.$set(原数组,索引值,需要赋的值)
length的问题还需要使用splice方法
vm.items.splice(newLength)