色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue key原理

榮姿康2年前8瀏覽0評論

Vue是一款非常流行的前端JavaScript框架,它提供了許多方便的功能來創建動態交互式用戶界面。其中,key屬性是Vue中非常重要的一個屬性,可以幫助Vue更好地渲染組件和提高渲染的性能。

在Vue中,每個組件都有一個唯一的標識符,稱為key。當Vue進行組件渲染時,它會使用這些key來判斷哪些組件需要被更新、建立、重用或銷毀。而key的唯一性則保證了組件之間的狀態不會相互干擾,從而提高性能。

Vue.component('my-component', {
props: ['info'],
template: '<div>{{ info.text }}</div>',
created() {
console.log('Component created.')
},
mounted() {
console.log('Component mounted.')
},
destroyed() {
console.log('Component destroyed.')
}
})
Vue.component('my-wrapper', {
data() {
return {
infos: [
{ id: 1, text: 'First component' },
{ id: 2, text: 'Second component' },
{ id: 3, text: 'Third component' }
]
}
},
methods: {
shuffle() {
this.infos = this.infos.reverse()
}
},
template: '<div>'
+ '  <button @click="shuffle">Shuffle</button>'
+ '  <my-component v-for="info in infos" :key="info.id" :info="info" />'
+ '</div>'
})
new Vue({
el: '#app'
})

如上面的代碼所示,我們有兩個組件:my-component和my-wrapper,my-wrapper是一個包裝組件,用來展示多個my-component組件,并且可以隨機改變它們的順序。

我們在my-component組件中添加了created、mounted和destroyed這三個生命周期函數,用來測試組件的創建、掛載和銷毀過程。

在my-wrapper組件中,我們使用了v-for循環遍歷infos數組,并且使用:key綁定了每個info的id作為其唯一標識。這樣,當我們點擊Shuffle按鈕時,Vue就會根據key的唯一性來決定哪些組件需要被創建、更新、重用或銷毀。