在vue.js中,vm.$set
是一个比较常用的API,先简单回顾一下用法。
一.用法:
vm.$set(target, key, value)
参数:
{object | Array} target
{string | number} key
{any} value
返回值:{function} unwatch
用法:在object上设置一个属性,如果object是响应式的,vue.js会保证属性被创建后也是响应式的,并且触发视图更新。这个方法主要是用来避开vue.js不能侦测属性被添加的限制。
注意:target不能是vue.js实例或者vue.js实例的根数据对象。
了解了变化侦测原理,我们知道了只有已经存在的属性的变化才会被追踪到,新增的属性无法被追踪到。因为在ES6之前,javascript并没有提供元编程的能力,所以根本无法侦测object什么时候被添加了一个新的属性。而vm.$set
就是为了解决这个问题而出现的,使用它可以为Object新增属性,然后vue.js就可以将这个新增属性转