A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

v-for 给了两个参数key和index,但是这里需要对遍历的数据区别对待。遍历的数据包括数组和对象,但是在数组下是没有key值的,而在对象下可以得到key,可以显示出来

<div id="app">  
        <ul>  
            <li v-for="(item,index,key) of list">{{item.n}}  
                <div>index={{ index }}</div>  
                <div>key={{key}}</div>  
            </li>  
        </ul>  
        <div>  
            <div v-for="(item,key,index) of obj">  
                {{item}}:{{key}}:{{index}}  
            </div>  
        </div>  
    </div>  
    </body>  
    <script>  
        var app=new Vue({  
            el:'#app',  
            data:{  
                list:[{n:11},{n:22},{n:33},{n:44},{n:55},{n:66}],  
                obj:{color:'red',age:18,sex:'girl'}  
            }  
        })  
    </script>
显示的效果图:



v-for中的key:

v-for循环数据,当用for来更新已经被渲染的元素时,vue的“就地复用”机,是不会改变数据项的顺序的,如果想要重新排序,需要为每项添加key(也就是每项的唯一id)

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

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


<div v-for="item in items" :key="item.id">  
  <!-- 内容 -->  
</div>  

---------------------
【转载,仅作分享,侵删】
作者:努力_才幸福
原文:https://blog.csdn.net/weixin_38098192/article/details/80319958
版权声明:本文为博主原创文章,转载请附上博文链接!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马