Vue之計(jì)算屬性詳解
1、何為計(jì)算屬性:大白話講就是計(jì)算出來(lái)的結(jié)果保存在屬性當(dāng)中,可以想象為緩存。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!--注意了同志們是currentTime1(),這里有加括號(hào)的,是方法調(diào)用.-->
<p>currentTime1:{{currentTime1()}}</p>
<!--這里的currentTime1是沒(méi)有加括號(hào)的,通過(guò)屬性進(jìn)行調(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)前時(shí)間戳
return Date.now();
}
},
computed: {
/*注意:這里就有計(jì)算屬性了:而且methods和computed方法名不能相同。
重名之后只會(huì)調(diào)用methods方法*/
currentTime2: function () {
this.message;
// 返回當(dāng)前時(shí)間戳
return Date.now();
}
}
});
</script>
</body>
</html>
運(yùn)行結(jié)果:

可能咋一看好像沒(méi)什么區(qū)別呀。
但是我們仔細(xì)思考一下,一個(gè)是方法,一個(gè)是屬性。
如下所示:
<div id="app">
<!--注意了同志們是currentTime1(),這里有加括號(hào)的,是方法調(diào)用.-->
<p>currentTime1:{{currentTime1()}}</p>
<!--這里的currentTime1是沒(méi)有加括號(hào)的,通過(guò)屬性進(jìn)行調(diào)用的-->
<p>currentTime2:{{currentTime2}}</p>
</div>
重點(diǎn):屬性是存值的,有新的值進(jìn)來(lái)才會(huì)改變,不然就跟緩存一樣,我們來(lái)看這個(gè):

解釋一下:
1.在1、2當(dāng)中我們可以看出,一個(gè)是方法一個(gè)是屬性,屬性用方法來(lái)調(diào)用肯定是不行的。
2.在1、3當(dāng)中我們可以看出,方法調(diào)用的值一直在變,但是屬性調(diào)用的值沒(méi)有改變這就跟他是緩存機(jī)制一樣
3.在3、4、5當(dāng)中我們就可以看出,當(dāng)我們一旦改變了函數(shù)當(dāng)中的值,就相當(dāng)于改變了緩存中的值,那么他就會(huì)刷新值。
總結(jié)
調(diào)用方法時(shí),每次都需要進(jìn)行計(jì)算,既然有計(jì)算過(guò)程則必定產(chǎn)生系統(tǒng)開(kāi)銷,那如果這個(gè)結(jié)果是不經(jīng)常變化的呢?此時(shí)就可以考慮將這個(gè)結(jié)果緩存起來(lái)。采用計(jì)算機(jī)屬性可以很方便做到這一點(diǎn)。計(jì)算機(jī)屬性的主要特性就是為了將不經(jīng)常變化的計(jì)算結(jié)果進(jìn)行緩存,以節(jié)約我們的系統(tǒng)開(kāi)銷。-----小伙伴們明白了嗎?
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Vue2.0實(shí)現(xiàn)簡(jiǎn)單分頁(yè)及跳轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了Vue2.0實(shí)現(xiàn)簡(jiǎn)單數(shù)據(jù)分頁(yè),及頁(yè)數(shù)的跳轉(zhuǎn)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
vue 使用eventBus實(shí)現(xiàn)同級(jí)組件的通訊
這篇文章主要介紹了vue 使用eventBus實(shí)現(xiàn)同級(jí)組件的通訊,需要的朋友可以參考下2018-03-03
改變vue請(qǐng)求過(guò)來(lái)的數(shù)據(jù)中的某一項(xiàng)值的方法(詳解)
下面小編就為大家分享一篇改變vue請(qǐng)求過(guò)來(lái)的數(shù)據(jù)中的某一項(xiàng)值的方法(詳解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
vue定時(shí)器清除不掉,導(dǎo)致功能頻繁執(zhí)行問(wèn)題
這篇文章主要介紹了vue定時(shí)器清除不掉,導(dǎo)致功能頻繁執(zhí)行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
解決Antd 里面的select 選擇框聯(lián)動(dòng)觸發(fā)的問(wèn)題
這篇文章主要介紹了解決Antd 里面的select 選擇框聯(lián)動(dòng)觸發(fā)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Vue項(xiàng)目發(fā)布后瀏覽器緩存問(wèn)題解決方案
在vue項(xiàng)目開(kāi)發(fā)中一直有一個(gè)令人都疼的問(wèn)題,就是緩存問(wèn)題,這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目發(fā)布后瀏覽器緩存問(wèn)題的解決方案,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09

