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

vue 優先級

林玟書2年前9瀏覽0評論

Vue中的優先級設置很重要,它影響著組件的更新和渲染。在Vue中設置優先級主要有以下幾種方式:

1.計算屬性的優先級:

<div id="app">
<p>{{ message() }}</p>
<p>{{ computedMessage() }}</p>
</div>
new Vue({
el: '#app',
data: {
msg: 'hello'
},
methods: {
message: function () {
console.log('message')
return this.msg
}
},
computed: {
computedMessage: function () {
console.log('computedMessage')
return this.msg
}
}
})

在上面的代碼中,message和computedMessage都會輸出hello,但是計算屬性computedMessage的優先級比較高,當msg改變時,computedMessage先更新,然后才是message。

2.監聽watch的優先級:

new Vue({
el: '#app',
data: {
msg: 'hello'
},
watch: {
msg: function () {
console.log('watch msg')
},
computedMsg: function () {
console.log('watch computedMsg')
}
},
computed: {
computedMsg: function () {
console.log('computedMsg')
return this.msg
}
},
methods: {
changeMsg: function () {
this.msg = 'world'
}
}
})

在上面的代碼中,當msg改變時,會先更新computedMsg,然后才會更新watch computedMsg。

3.v-for的優先級:

<div id="app">
<p v-for="item in list">{{ item }}</p>
</div>
new Vue({
el: '#app',
data: {
list: [1, 2, 3]
},
mounted: function () {
this.list.splice(1, 1, 4)
}
})

在上面的代碼中,mounted鉤子函數中改變list的值時,頁面會先刪除原來的2,然后再插入4,這是因為vue會先渲染出原來的列表,然后再根據data中的值更新視圖。

4.v-if和v-show的優先級:

在使用v-if和v-show時,v-if的優先級高于v-show。當v-if的值變為false時,整個元素會被完全卸載,而v-show只是控制元素的顯示隱藏。

5.directives的優先級:

Vue.directive('focus', {
inserted: function (el) {
el.focus()
}
})
new Vue({
el: '#app'
})

在上面的代碼中,定義了一個全局指令focus,在mounted和其他生命周期中都無法使用,但是可以在模板中使用v-focus指令。

總結:

Vue中不同的優先級設置不同的更新和渲染順序,能夠更好的優化組件性能。在編寫Vue組件時候,應該對每一個優先級設置進行仔細考慮。