要想正确使用VUE双向绑定数组,要注意以下3种情况:

1、使用push、pop、shift、unshift、splice、sort和reverse会改变原数组的操作,VUE能正常检测到数组变化而更新视图。
2、使用filter、concat、slice这几种方法操作数组,并不会改变原数组,VUE自然不会检测到数据变化也不会去更新视图。
3、使用下标方式(number[0] = x)、直接修改数组长度number.length = 1这两种方式虽然改变了原数组,但此时VUE检测不到数组变化,也不会更新视图。
对于第3种特殊的情况,如果就有通过下标去改变数组的需求怎么办呢?可以使用VUE提供的set方法去实现:

<button @click="set">把数字1赋值为A(set方式)</button>
... ... 
    set() {
      this.$set(this.number, 0 , "A");  
    }


对于直接修改数组的长度也可以用splice来实现:

<button @click="spliceLen">修改数组长度为2(splice方式)</button>
... ...
    spliceLen() {
      this.number.splice(2);
    }

 

Logo

前往低代码交流专区

更多推荐