Vue之$set

问题描述

vue的data里边声明或者已经赋值过的对象或者数组时,向对象中添加新的属性,如果更新此属性的值,是不会更新显示视图的。

解决方法

<template>
  <div class="second-block" >
   <ul class="list-ul">
     <li class="list-li" v-for="(item,index) in list" :key="index"  @click="updateListData(index)">
        {{item.title}}
     </li>
   </ul>
  </div>
</template>

<script>
  export default{
    data(){
      return{
        list:[
          {
              id : 1,
              selected : true,
              title : 'aaa',
              newtitle : 'aaa1'
          },
          {
              id : 2,
              selected : false,
              title : 'bbb',
              newtitle : 'aaa2'
          },
          {
              id : 3,
              selected : true,
              title : 'ccc',
              newtitle : 'aaa3'
          }
        ]
      }
    },
    methods:{
      updateListData(index){
        console.log(index)
        // 页面未更新
        this.list[index] = {  //不响应
          id : 313,
          selected : true,
          title : 'ccc113',
          newtitle : 'aaa33'
        }
        // 页面更新
        this.$set(this.list, index, { //响应
            id : 31,
            selected : true,
            title : 'ccc11',
            newtitle : 'aaa3'
        })
        this.list.splice(index, 1, {  //响应
          id : 31,
          selected : true,
          title : 'ccc11',
          newtitle : 'aaa3'
        })
        this.list.length = 2;  //不响应
        this.list.splice(2)  //响应
      }
    }
  }
</script>

<style lang="less">
  .second-block{
    width: 100%;
    height: 200px;
    line-height: 200px;
    text-align: center;
    float: left;
  }
  ul li{
    list-style-type: none;
  }
  .list-ul{
    .list-li{
      line-height: 48px;
    }
    .list-li:nth-child(2n){
      background:#666666;
    }
    .list-li:nth-child(2n-1){
      background:#e3e3e3;
    }
  }
</style>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.埋点是做什么的 2.如何进行埋点 3.埋点方案的设计 近期常被问到这个问题,我担心我的答案会将一些天真烂漫的孩...
    lxg阅读 6,065评论 0 1
  • 声明 许多项目在他们的使用协助/说明网页中链接了本指南,这么做很好,我们也鼓励大家都这么做。但如果你是负责管理这个...
    全满阅读 2,875评论 0 0
  • 一、课程性质与基本理念 (一)课程性质 信息技术作为当今先进生产力的代表,已经成为我国经济发展的重要支柱和网络强国...
    新手老梁阅读 12,960评论 0 5
  • 中国曹硕 月亮 喜欢 上天入地 没人管她 他一个人到陆地上变成了小船 一会儿又到天空变成了一个月饼 谁也抓不到她 ...
    幸福一家曹硕阅读 39评论 0 0
  • 白和瘦应该是女生一生都在追求的目标。 没有最白,只有更白。一百遮三丑这话真的没毛病。 哪怕你的五官再平庸,只要你白...
    倾小染6阅读 3,283评论 0 0