vue中key
使用key维护列表的状态
当列表的数据变化时,默认情况下,vue尽可能的服用已存在的DOM元素,从而提升渲染的性能。但这种默认的性能优化策略,会导致由状态的列表无法被正确更新。
key的使用注意事项:
1、key的值必须是string、number
2、key的值必须具有唯一性
3、建议把数据项的id属性的值作为key的值
4、使用index的值作为key的值没有意义
5、建议使用v-for指令的时候一定要指定key的值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script> </head> <body> <div id="app"> <div> <input type="text" v-model="username"> <button @click="addUserName">添加</button> </div> <ul> <li v-for="user in userlist" :key="user.id"> <input type="checkbox"> 姓名:{{ user.name}} </li> </ul> </div> <script> var vm = new Vue({ el:"#app", data:{ userlist:[{id:1,name:'sz'},{id:2,name:'sd'},{id:3,name:'se'}], username:'', nextId: 4, }, methods:{ addUserName: function (){ if(!this.username) return alert('名称不能为空') this.userlist.push({ id: this.nextId, name: this.username }), this.nextId ++ } } }) </script> </body> </html>
参考:https://www.zhihu.com/question/61064119