Vue——v-for中 key 屬性的使用


當在組件中使用 v-for 時,key 現在是必須的。

 

首先,為了方便演示。我們先搭建一個基礎結構

 

 

 

現在我們目前添加的是用的 push 方法,添加到了對象的尾部

在添加之前選中了第五個后再添加也不會出現上面異常

 

接下來我們再來看看如果是使用 unshift 方法,是添加到對象前面的

 

我們可以看到如果在添加之前選中了其中一項,后再添加就會出現索引錯位的現象

 

 

所以我們需要給對象里面的每一項都綁定上一個唯一的標識

這個時候就可以用到我們的這個 key 了

 

 綁定好之后我們再來看一下

現在可以看到我們沒有添加新用戶之前,我們選中了 5號,添加之后選中的還是 5號

附上完整代碼

<!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">
        <div>
            <label>Id:
                <input type="text" v-model='id'>
            </label>

            <label>Name:
                <input type="text" v-model='name'>
            </label>

            <input type="button" value="添加" @click='add'>
        </div>

        <p v-for='item in list' v-bind:key='item.id'>
            <input type="checkbox">{{ item.id }} --- {{ item.name }}
        </p>
    </div>
    <script src="../vue/vue.js"></script>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                id: '',
                name: '',
                list: [{
                    id: 1,
                    name: '勒布朗'
                }, {
                    id: 2,
                    name: '杜蘭特'
                }, {
                    id: 3,
                    name: '庫里'
                }, {
                    id: 4,
                    name: '羅斯'
                }, {
                    id: 5,
                    name: '喬治'
                }]
            },
            methods: {
                add(){
                    this.list.unshift({id: this.id, name: this.name})
                }
            }
        })
    </script>
</body>

</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM