計算屬性其實是非常強大的握玛,這一節(jié)深入的學(xué)習(xí)下計算屬性,先看一段代碼:
<div id="app">
{{fullName}}
</div>
let vm = new Vue({
el: '#app',
data: {
firstName: 'Dell',
lastName: 'Lee'
},
computed: {
fullName(){
return this.firstName + ' ' + this.lastName
}
}
})
插值表達式{{fullName}}
首先回去data
中去找fullName
這個屬性涎才,找不到再去計算屬性中去找标沪,找到之后在將它顯示在頁面之中。
計算屬性中的fullName
我們換一種寫法:
<div id="app">
{{fullName}}
</div>
let vm = new Vue({
el: '#app',
data: {
firstName: 'Dell',
lastName: 'Lee'
},
computed: {
fullName:{
get(){
return this.firstName + ' ' + this.lastName
},
set(value){
var arr = value.split(' ')
this.firstName = arr[0]
this.lastName = arr[1]
}
}
}
})
當(dāng)我去使用這個計算屬性的時候掘托,調(diào)用插值表達式,去讀這個內(nèi)容洼哎,它就會走get
的方法
當(dāng)我去設(shè)置這個屬性屬性值的時候烫映,set
方法會被執(zhí)行沼本,同時會拿到設(shè)置的這個值噩峦,我就可以通過這個值去設(shè)置firstName
和lastName
。
computed
有這樣一個特性抽兆,它呢什么時候會重新計算识补,當(dāng)它依賴的值發(fā)生變化時,它就會重新去計算 辫红,重新計算之后凭涂,那么你看祝辣,當(dāng)你set fullName
時,this.firstName
的值就會發(fā)生變化切油,恰好這個值又是fullName
所依賴的一個值蝙斜,所以就會引起fullName
的重新計算,重新計算之后澎胡,fullName
的值變了孕荠,頁面上顯示的fullName
也就跟著變了。