Vue 检测数组更新

1、列表集合检测动态更新
2、更新列表集合里面的某一项Item

1、列表集合检测动态更新
问题描述:后台给了我一个backList,但是我自己的JS是一个vm.List,如果我采用vm.List.push(backList);虽然检测到更新了,但是你console.log发现它的格式是这样的 [[{name:aaa,age:20},{name:bbb,age:30}]]。这样显然不满足我的条件。
解决办法:

vm.listView = vm.listView.concat(backList);

如上,就可以解决,你再次console.log,[{name:aaa,age:20},{name:bbb,age:30}]。
如果我是出于上拉刷新,下拉加载,那么就要这样弄

 if (isPull) {//上拉加载
            vm.listView = vm.listView.concat(backList);
        } else if (!isPull && pageNoL == 1) {//下拉刷新
            vm.listView = [];
            vm.listView = vm.listView.concat(backList);
        }

2、更新列表集合里面的某一项Item

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>RunJS</title>
    </head>
    <body>
        <div id="app"  v-for="(item, index) in list" :key="index" v-on:click="styleClick(item,index)" >
              {{item.a}}
        </div>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js"></script>
        <script>
            new Vue({
                el:'#app',
                data:{
                    list:[{a:1},{a:2}]
                },
               methods:{
                     styleClick:function (item,index) {
                           var newValue = vm.list[index];
                           if (item.a==1){
                                item.a = 5;
                              } else {
                                 item.a = 10;
                              }
                               Vue.set(vm.list, index, newValue)
                        }
                  }
            });
        </script>
    </body>
</html>

先获取到某项的Item,然后修改里面的值,通过Vue.set将值修改

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

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,882评论 2 17
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,516评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,731评论 0 3
  • 学校参加了历年来第一次的篮球比赛,这次比赛对于我们而已,也算是大学生涯的不留遗憾,算是幸运,也可以说冥冥中安排,当...
    行走的读者阅读 326评论 0 0