Vue computed 計(jì)算屬性代碼實(shí)例
什么是計(jì)算屬性???
1、在computed中,可以定義一些屬性,這些屬性叫做【計(jì)算屬性】
2、計(jì)算屬性的本質(zhì)是一個(gè)方法,不過一般是將他們的名稱直接當(dāng)做屬性使用,不會(huì)當(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中,可以定義一些屬性,這些屬性叫做【計(jì)算屬性】 // 計(jì)算屬性的本質(zhì)是一個(gè)方法,不過一般是將他們的名稱直接當(dāng)做屬性使用,不會(huì)當(dāng)方法調(diào)用 'fullname':function () { return this.firstname + '-' + this.lastname; } } }) </script> </body> </html>
重點(diǎn)注意
1、計(jì)算屬性,在調(diào)用的時(shí)候,一定不要加()去調(diào)用,直接將它當(dāng)做普通屬性使用
2 、計(jì)算屬性的function中引用的data中的數(shù)據(jù)發(fā)生了變化,就會(huì)立即重新計(jì)算這個(gè)計(jì)算屬性的值
3、 計(jì)算屬性的求值結(jié)果,會(huì)被緩存起來,方便下次直接使用;如果計(jì)算屬性方法中,所有來的任何數(shù)據(jù)沒有發(fā)生改變,則不會(huì)重新計(jì)算
內(nèi)容擴(kuò)展
vue之computed(計(jì)算屬性)的使用方法
在vue中,一些簡易的計(jì)算可以直接在模板中計(jì)算,如:{{ number + 1 }};但是在模板中如果有太多復(fù)雜的計(jì)算難以維護(hù);所以對(duì)于任何復(fù)雜的邏輯,你都應(yīng)該使用計(jì)算屬性的原因;
1.經(jīng)過處理返回的數(shù)據(jù)值,只要源數(shù)據(jù)沒有發(fā)生改變,computed函數(shù)里面對(duì)相應(yīng)的數(shù)據(jù)就不會(huì)反生改變,相當(dāng)于緩存在本地;發(fā)生改變的時(shí)候,computed對(duì)應(yīng)數(shù)據(jù)的函數(shù)也會(huì)發(fā)生改變;
2:computed屬性和methods屬性
你可能已經(jīng)注意到我們可以通過調(diào)用method來達(dá)到同樣的效果:我們可以將同一個(gè)函數(shù)定義為一個(gè)method而不是一個(gè)計(jì)算屬性,對(duì)于最終的結(jié)果,兩種方式確實(shí)是相同的;
然而,計(jì)算屬性是基于他們的依賴就行緩存的,計(jì)算屬性只有在它相關(guān)的依賴發(fā)生改變時(shí)才會(huì)重新求值,這意味著只要message 還沒有發(fā)生改變,多次訪問reversedMessage計(jì)算屬性會(huì)立刻返回之前計(jì)劃算的結(jié)果,而不必再次執(zhí)行函數(shù).
3:computed中的屬性;
計(jì)算屬性默認(rèn)只有g(shù)etter不過在需要時(shí)也可以提供一個(gè)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 計(jì)算屬性代碼實(shí)例的文章就介紹到這了,更多相關(guān)Vue之computed 計(jì)算屬性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3組合式API實(shí)現(xiàn)todo列表效果
這篇文章主要介紹了vue3組合式API實(shí)現(xiàn)todo列表,下面用組合式?API的寫法,實(shí)現(xiàn)一個(gè)可新增、刪除的todo列表效果,需要的朋友可以參考下2024-08-08vue3?Error:Unknown?variable?dynamic?import:?../views/的解
這篇文章主要給大家介紹了關(guān)于vue3?Error:Unknown?variable?dynamic?import:?../views/的解決方案,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07vue3通過canvas實(shí)現(xiàn)圖片圈選功能
這篇文章將給大家詳細(xì)介紹了vue3如何通過canvas實(shí)現(xiàn)圖片圈選功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴快來跟隨小編一起學(xué)習(xí)一下吧2023-12-12vue-cli中設(shè)置publicPath的幾種方式對(duì)比
這篇文章主要介紹了vue-cli中設(shè)置publicPath的幾種方式對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07vue3數(shù)據(jù)監(jiān)聽watch/watchEffect的示例代碼
我們都知道監(jiān)聽器的作用是在每次響應(yīng)式狀態(tài)發(fā)生變化時(shí)觸發(fā),在組合式?API?中,我們可以使用?watch()函數(shù)和watchEffect()函數(shù),下面我們來看下vue3如何進(jìn)行數(shù)據(jù)監(jiān)聽watch/watchEffect,感興趣的朋友一起看看吧2023-02-02vue項(xiàng)目持久化存儲(chǔ)數(shù)據(jù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue項(xiàng)目持久化存儲(chǔ)數(shù)據(jù)的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10