Vue之計算屬性詳解
1、何為計算屬性:大白話講就是計算出來的結(jié)果保存在屬性當(dāng)中,可以想象為緩存。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <!--注意了同志們是currentTime1(),這里有加括號的,是方法調(diào)用.--> <p>currentTime1:{{currentTime1()}}</p> <!--這里的currentTime1是沒有加括號的,通過屬性進行調(diào)用的--> <p>currentTime2:{{currentTime2}}</p> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> <script> var vm = new Vue({ el: "#app", data: { message: "hello vue!" }, methods: { currentTime1: function () { // 返回當(dāng)前時間戳 return Date.now(); } }, computed: { /*注意:這里就有計算屬性了:而且methods和computed方法名不能相同。 重名之后只會調(diào)用methods方法*/ currentTime2: function () { this.message; // 返回當(dāng)前時間戳 return Date.now(); } } }); </script> </body> </html>
運行結(jié)果:
可能咋一看好像沒什么區(qū)別呀。
但是我們仔細(xì)思考一下,一個是方法,一個是屬性。
如下所示:
<div id="app"> <!--注意了同志們是currentTime1(),這里有加括號的,是方法調(diào)用.--> <p>currentTime1:{{currentTime1()}}</p> <!--這里的currentTime1是沒有加括號的,通過屬性進行調(diào)用的--> <p>currentTime2:{{currentTime2}}</p> </div>
重點:屬性是存值的,有新的值進來才會改變,不然就跟緩存一樣,我們來看這個:
解釋一下:
1.在1、2當(dāng)中我們可以看出,一個是方法一個是屬性,屬性用方法來調(diào)用肯定是不行的。
2.在1、3當(dāng)中我們可以看出,方法調(diào)用的值一直在變,但是屬性調(diào)用的值沒有改變這就跟他是緩存機制一樣
3.在3、4、5當(dāng)中我們就可以看出,當(dāng)我們一旦改變了函數(shù)當(dāng)中的值,就相當(dāng)于改變了緩存中的值,那么他就會刷新值。
總結(jié)
調(diào)用方法時,每次都需要進行計算,既然有計算過程則必定產(chǎn)生系統(tǒng)開銷,那如果這個結(jié)果是不經(jīng)常變化的呢?此時就可以考慮將這個結(jié)果緩存起來。采用計算機屬性可以很方便做到這一點。計算機屬性的主要特性就是為了將不經(jīng)常變化的計算結(jié)果進行緩存,以節(jié)約我們的系統(tǒng)開銷。-----小伙伴們明白了嗎?
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
對Vue- 動態(tài)元素屬性及v-bind和v-model的區(qū)別詳解
今天小編就為大家分享一篇對Vue- 動態(tài)元素屬性及v-bind和v-model的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08vue權(quán)限路由實現(xiàn)的方法示例總結(jié)
這篇文章主要給大家介紹了關(guān)于vue權(quán)限路由實現(xiàn)方法的相關(guān)資料,文中通過示例代碼介紹地方非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07在vue中使用inheritAttrs實現(xiàn)組件的擴展性介紹
這篇文章主要介紹了在vue中使用inheritAttrs實現(xiàn)組件的擴展性介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12基于VUE實現(xiàn)判斷設(shè)備是PC還是移動端
這篇文章主要介紹了基于VUE實現(xiàn)判斷設(shè)備是PC還是移動端,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07詳解vue的數(shù)據(jù)劫持以及操作數(shù)組的坑
這篇文章主要介紹了vue的數(shù)據(jù)劫持以及操作數(shù)組的坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04