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

posted @ 2021-12-07 18:05  fat_girl_spring  阅读(33)  评论(0编辑  收藏  举报