码迷,mamicode.com
首页 > 其他好文 > 详细

Vue指令之`v-for`和`key`属性

时间:2019-09-24 12:00:49      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:需要   v-for   class   策略   color   顺序   必须   简单   new   

2.2.0+ 的版本里,**当在组件中使用** v-for 时,key 现在是必须的。

当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “**就地复用**” 策略。如果数据项的顺序被改变,Vue将**不是移动 DOM 元素来匹配数据项的顺序**, 而是**简单复用此处每个元素**,并且确保它在特定索引下显示已被渲染过的每个元素。

为了给 Vue 一个提示,**以便它能跟踪每个节点的身份,从而重用和重新排序现有元素**,你需要为每项提供一个唯一 key 属性。 

 

 

注意:

   在遍历对象身上的键值对的时候, 除了 有  val  key  ,在第三个位置还有 一个 索引  i
  v-for=" (val,key i)" ,如果只写一个参数表示值,两个是值和键 三个,值、键、索引
 

v-for 循环普通数组

<body>
    <!-- v-for 循环普通的数组 和使用foreach 挺像 -->

        <div class="box">
            <p v-for="(item,i) in list">索引值:{{i}}----------值:{{item}}</p>
        </div>


    <script src="./lib/vue-2.4.0.js"></script>
    <script>
    var vm=new Vue({
        el:.box,
        data:{
            list:[
                1,2,3,4,5,6
            ]
        }
    });
    
    </script>
</body>

v-for循环对象数组

<body>
    <div class="box">
        <p v-cloak v-for="(user,i) in list">id:{{user.id}}---------名称:{{user.name}}</p>
    </div>

    <script src="lib/vue-2.4.0.js"></script>
    <script>
        var vm=new Vue({
            el:.box,
            data:{
                list:[
                    {id:1,name:杜伟},
                    {id:2,name:王玥},
                    {id:3,name:任凯},
                    {id:4,name:刘海波}
                ]
            },
            methods:{

            }

        });
    </script>
</body>

v-for 循环对象

  

<body>
    <div class="box">
        <!-- 注意:在遍历对象身上的键值对的时候, 除了 有  val  key  ,在第三个位置还有 一个 索引  
        
        -->
        <p v-for="(item,i) in pipor">{{item}}----{{val}}-----{{i}}</p>
    </div>
    <script src="lib/vue-2.4.0.js"></script>
    <script>
        var vm=new Vue({
            el:.box,
            data:{
                pipor:{
                    id:1,
                    name:杜伟,
                    gender:
                }
            }
        });
    </script>
    

v-for 迭代数字

  

<body>
    <div class="box">
        <p v-for="item in 10" v-text="item"> </p>
    </div>


    <script src="lib/vue-2.4.0.js"></script>
    <script>
        var vm=new Vue({
            el:.box,
            data:{

            }
        });
    </script>
</body>

 

Vue指令之`v-for`和`key`属性

标签:需要   v-for   class   策略   color   顺序   必须   简单   new   

原文地址:https://www.cnblogs.com/xiaowie/p/11577222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!