本文已参与「新人创作礼」活动,一起开启掘金创作之路。
vue中数组的响应式:当通过一些方法(比如点击按钮,给数组添加一个元素)改变数组,浏览器显示的元素会立刻改变。Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。
响应式数组方法
1、push(),在数组中最后添加一个或者多个元素,返回值为新数组的长度
2、pop(),删除数组中的最后元素;返回值为被删除的元素
3、shift(),删除数组中的第一个元素,返回值为被删除的元素
4、unshift(),在数组最前面添加元素,返回值为新数组的长度
5、splice(index,len,[arr]),删除元素、插入元素、替换元素;
6、sort(),数组元素排序;
7、reverse(),数组元素反转
8.splice(),删除元素,修改元素,插入元素
splice(start,end,)
----删除元素(从第几个开始,删除几个元素)不传第二个参数就删除后面所有元素
----插入元素(从第几个元素开始,0,替换的元素1,替换的元素2....)
----替换元素(从第几个元素开始,要插入几个元素,替换的元素1,替换的元素2......)
不具有响应式的数组方法:通过索引直接修改数组元素 (例:this.colors[0] = "cccc")
想要完成数组的修改,并做到响应式,有两种方法如下:
1.splice() 例: this.colors.splice(0,0,"ccccc");
2.Vue.set(要改变的数组,第几个,替换的元素),返回值为设置的值。
主要用于向响应式对象中添加一个 property,并确保这个新 property 同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新 property,因为 Vue 无法探测普通的新增 property。不能用于Vue 实例,或者 Vue 实例的根数据对象。
例:Vue.set(this.colors, 0, "ccccc")