vue使用splice操作数组更新页面

Posted on 2019-08-13 01:10  猫头唔食鱼  阅读(4048)  评论(0编辑  收藏  举报

直接对数组元素赋值,是不会更新视图的。要使用arr.splice()方法更新数组,才会更新视图。

 <template>
 <div>
      <ul>
          <li v-for="(item,i) in arr">{{item}}</li>
      </ul>

      <button @click="wrong">失效</button>
      <button @click="correct">生效</button>
 </div>
 </template>
 <script>
 export default {
   name: "Home",
   data () {
     return {
         arr:[1,2,3]
     };
   },
   methods: {
       wrong(){
           this.arr[0] = 9;   // 视图不会更新,页面上还是1,2,3
       },

       correct(){
           this.arr.splice(0,1,9); // 视图更新了,页面上是9,2,3
       }
       
   },
 }
 </script>
 <style lang="css" scoped>
 </style>