赞
踩
v-for中key属性的值应唯一,起到身份认证的作用,避免v-for"就地更新"策略导致的问题。. 官方说法:v-for中key 主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。. 如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。. 而使用 key 时,它会基于 key的变化重新排列元素顺序,并且会移除 key 不存在的元素。. 有相同父元素的子元素必须有独特的 key
vue中在进行列表渲染的时候,会默认遵守 就地复用策略
就地复用策略:
当在进行列表渲染的时候,vue会直接对已有的标签进行复用,不会整个的将所有的标签全部重新删除和创建,只会重新渲染数据,然后再创建新的元素直到数据渲染完为止
Vue中为v-for提供了一个属性,key:
key属性可以用来提升v-for渲染的效率!,vue不会去改变原有的元素和数据,而是创建新的元素然后把新的数据渲染进去
在使用v-for的时候,vue里面需要我们给元素添加一个key属性,这个key属性必须是唯一的标识
给key赋值的内容不能是可变的
1. 在写v-for的时候,都需要给元素加上一个key属性
2. key的主要作用就是用来提高渲染性能的!
3.key属性可以避免数据混乱的情况出现 (如果元素中包含了有临时数据的元素,如果不用key就会产生数据混乱)
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta http-equiv="X-UA-Compatible" content="ie=edge" />
- <title>Document</title>
- </head>
- <body>
- <div id="app">
- <ul>
- <li v-for="item in teachers" :key="item.id">{{ item.name }} <input type="text"></li>
- </ul>
- </div>
- <script src="./node_modules/vue/dist/vue.js"></script>
- <script>
- const vm = new Vue({
- el: "#app",
- data: {
- teachers: [
- { id: 1, name: "aaa" },
- { id: 2, name: "bbb" },
- { id: 3, name: "ccc" },
- { id: 4, name: "ddd" }
- ]
- }
- });
- </script>
- </body>
- </html>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。