欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue 優(yōu)先級(jí)

Vue中的優(yōu)先級(jí)設(shè)置很重要,它影響著組件的更新和渲染。在Vue中設(shè)置優(yōu)先級(jí)主要有以下幾種方式:

1.計(jì)算屬性的優(yōu)先級(jí):

<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都會(huì)輸出hello,但是計(jì)算屬性computedMessage的優(yōu)先級(jí)比較高,當(dāng)msg改變時(shí),computedMessage先更新,然后才是message。

2.監(jiān)聽watch的優(yōu)先級(jí):

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'
}
}
})

在上面的代碼中,當(dāng)msg改變時(shí),會(huì)先更新computedMsg,然后才會(huì)更新watch computedMsg。

3.v-for的優(yōu)先級(jí):

<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鉤子函數(shù)中改變list的值時(shí),頁面會(huì)先刪除原來的2,然后再插入4,這是因?yàn)関ue會(huì)先渲染出原來的列表,然后再根據(jù)data中的值更新視圖。

4.v-if和v-show的優(yōu)先級(jí):

在使用v-if和v-show時(shí),v-if的優(yōu)先級(jí)高于v-show。當(dāng)v-if的值變?yōu)閒alse時(shí),整個(gè)元素會(huì)被完全卸載,而v-show只是控制元素的顯示隱藏。

5.directives的優(yōu)先級(jí):

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

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

總結(jié):

Vue中不同的優(yōu)先級(jí)設(shè)置不同的更新和渲染順序,能夠更好的優(yōu)化組件性能。在編寫Vue組件時(shí)候,應(yīng)該對(duì)每一個(gè)優(yōu)先級(jí)設(shè)置進(jìn)行仔細(xì)考慮。