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

vue 如何觸發(fā)computed

如果你已經(jīng)熟悉Vue,那么你一定知道computed是Vue中的一個(gè)非常重要的特性。這個(gè)特性讓我們能夠編寫計(jì)算式來計(jì)算屬性,這些計(jì)算式對(duì)于響應(yīng)式系統(tǒng)來說是非常重要的。在本文中,我將討論如何觸發(fā)computed。

computed屬性是一種特殊的屬性,它既可以作為屬性值使用,也可以被當(dāng)做getter/setter函數(shù)使用。當(dāng)我們?cè)L問computed屬性時(shí),它就會(huì)被觸發(fā),計(jì)算出一個(gè)新的值。如果這個(gè)屬性依賴于其他屬性,那么當(dāng)這些依賴屬性發(fā)生變化時(shí),computed屬性也會(huì)被重新計(jì)算。

// 一個(gè)簡(jiǎn)單的computed例子
new Vue({
data: {
message: 'Hello'
},
computed: {
reversedMessage() {
return this.message.split('').reverse().join('')
}
}
})

在上面的例子中,我們定義了一個(gè)computed屬性reversedMessage,它依賴于message。當(dāng)message發(fā)生變化時(shí),reversedMessage也會(huì)被重新計(jì)算。

那么,如何觸發(fā)computed屬性呢?其實(shí),我們不需要手動(dòng)去觸發(fā)computed屬性,因?yàn)閂ue的響應(yīng)式系統(tǒng)會(huì)自動(dòng)監(jiān)測(cè)依賴關(guān)系,并在依賴發(fā)生變化時(shí)重新計(jì)算computed屬性。

比如下面這個(gè)例子:

new Vue({
data: {
firstName: 'Jack',
lastName: 'Smith'
},
computed: {
fullName: function () {
console.log('computed fullName被計(jì)算了')
return this.firstName + ' ' + this.lastName
}
},
methods: {
changeName: function () {
this.lastName = 'Lee'
}
}
})

在上面的例子中,我們定義了一個(gè)computed屬性fullName,它依賴于firstName和lastName。當(dāng)firstName和lastName任意一個(gè)屬性發(fā)生變化時(shí),computed屬性fullName會(huì)被重新計(jì)算。

現(xiàn)在,讓我們?cè)谀0逯惺褂胒ullName:

{{ fullName }}

這時(shí)候,在控制臺(tái)中我們會(huì)看到'computed fullName被計(jì)算了'的log。這是因?yàn)閂ue使用了一個(gè)叫做依賴收集的技術(shù),將組件的依賴關(guān)系收集起來,當(dāng)依賴發(fā)生變化時(shí)重新計(jì)算相關(guān)的computed屬性。

現(xiàn)在,讓我們?cè)诜椒ㄖ行薷膌astName,然后看一下computed屬性fullName是否被觸發(fā):

當(dāng)我們點(diǎn)擊按鈕時(shí),lastName被修改了,這時(shí)控制臺(tái)中會(huì)再次出現(xiàn)'computed fullName被計(jì)算了'的log。這是因?yàn)閘astName發(fā)生了變化,fullName被依賴收集系統(tǒng)重新計(jì)算了。

除了上面提到的修改屬性值之外,還有一些其他的方式可以觸發(fā)computed屬性,比如props,$forceUpdate等。但對(duì)于大部分情況來說,我們并不需要關(guān)心這些方式,只要記住依賴關(guān)系變化時(shí)computed屬性就會(huì)被自動(dòng)觸發(fā)即可。