Vue computed 計算屬性代碼實例
什么是計算屬性???
1、在computed中,可以定義一些屬性,這些屬性叫做【計算屬性】
2、計算屬性的本質(zhì)是一個方法,不過一般是將他們的名稱直接當(dāng)做屬性使用,不會當(dāng)方法調(diào)用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="../lib/vue-2.4.0.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="firstname">+
<input type="text" v-model="lastname">=
<input type="text" v-model="fullname">
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
firstname: '',
lastname: ''
},
methods: {},
computed:{
// 在computed中,可以定義一些屬性,這些屬性叫做【計算屬性】
// 計算屬性的本質(zhì)是一個方法,不過一般是將他們的名稱直接當(dāng)做屬性使用,不會當(dāng)方法調(diào)用
'fullname':function () {
return this.firstname + '-' + this.lastname;
}
}
})
</script>
</body>
</html>
重點注意
1、計算屬性,在調(diào)用的時候,一定不要加()去調(diào)用,直接將它當(dāng)做普通屬性使用
2 、計算屬性的function中引用的data中的數(shù)據(jù)發(fā)生了變化,就會立即重新計算這個計算屬性的值
3、 計算屬性的求值結(jié)果,會被緩存起來,方便下次直接使用;如果計算屬性方法中,所有來的任何數(shù)據(jù)沒有發(fā)生改變,則不會重新計算
內(nèi)容擴展
vue之computed(計算屬性)的使用方法
在vue中,一些簡易的計算可以直接在模板中計算,如:{{ number + 1 }};但是在模板中如果有太多復(fù)雜的計算難以維護;所以對于任何復(fù)雜的邏輯,你都應(yīng)該使用計算屬性的原因;
1.經(jīng)過處理返回的數(shù)據(jù)值,只要源數(shù)據(jù)沒有發(fā)生改變,computed函數(shù)里面對相應(yīng)的數(shù)據(jù)就不會反生改變,相當(dāng)于緩存在本地;發(fā)生改變的時候,computed對應(yīng)數(shù)據(jù)的函數(shù)也會發(fā)生改變;
2:computed屬性和methods屬性
你可能已經(jīng)注意到我們可以通過調(diào)用method來達到同樣的效果:我們可以將同一個函數(shù)定義為一個method而不是一個計算屬性,對于最終的結(jié)果,兩種方式確實是相同的;
然而,計算屬性是基于他們的依賴就行緩存的,計算屬性只有在它相關(guān)的依賴發(fā)生改變時才會重新求值,這意味著只要message 還沒有發(fā)生改變,多次訪問reversedMessage計算屬性會立刻返回之前計劃算的結(jié)果,而不必再次執(zhí)行函數(shù).
3:computed中的屬性;
計算屬性默認只有g(shù)etter不過在需要時也可以提供一個setter;
var vm=new Vue({
el:"#demo",
data:{
firstName:"foo",
lastName:"Bar",
fullName:"foo Bar"
},
computed:{
fullName:function(){
get:function(){
return this.firstName+" "+this.lastName;
},
setter:function(){
var names=newValue.split('');
this.firstName=names[0];
this.lastName=names[names.length-1]
}
}
}
});
到此這篇關(guān)于Vue computed 計算屬性代碼實例的文章就介紹到這了,更多相關(guān)Vue之computed 計算屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

