vue的計算屬性computed

Vue中的computed屬性稱為計算屬性。模板內(nèi)的表達(dá)式非常便利,但是設(shè)計它們的初衷是用于簡單運(yùn)算的麸折。在模板中放入太多的邏輯會讓模板過重且難以維護(hù)钠糊。

例如:

在這個地方挟秤,模板不再是簡單的聲明式邏輯。你必須看一段時間才能意識到抄伍,這里是想要顯示變量 message 的翻轉(zhuǎn)字符串艘刚。當(dāng)你想要在模板中多次引用此處的翻轉(zhuǎn)字符串時,就會更加難以處理截珍。

你可以使用computed屬性這么寫:

結(jié)果:

Original message: "Hello"

Computed reversed message: "olleH"

問:為什么reversedMessage不可以在data里面定義攀甚?

答:定義會報錯,因為computed作為計算屬性定義reversedMessage返回對應(yīng)的結(jié)果給這個變量(通俗的理解笛臣,reversedMessage只是監(jiān)控變量云稚,對message進(jìn)行處理,實際上重新返回了message)沈堡,變量不可以被重復(fù)定義和賦值静陈。


計算屬性只在第一次調(diào)用時執(zhí)行運(yùn)算過程,計算結(jié)果會被緩存在內(nèi)存中诞丽,多次調(diào)用時鲸拥,如果依賴的數(shù)據(jù)未發(fā)生變化,不會再去進(jìn)行運(yùn)算過程的執(zhí)行僧免。

畫重點:computed依賴于data中的數(shù)據(jù)刑赶,只有在它的相關(guān)依賴數(shù)據(jù)發(fā)生改變時才會重新求值。我理解為懂衩,computed只能監(jiān)控放在data等對象下的實例數(shù)據(jù)撞叨。

看下面的例子:

?<button?@click="getMethodsDate">methods</button>

?<button?@click="getComputedDate">computed</button>

??computed:?{

????computedDate()?{

??????return?new?Date();

????}

??},

????getMethodsDate()?{

??????alert(new?Date());

????},

????//?返回computed選項中設(shè)置的計算屬性——computedDate

????getComputedDate()?{

??????alert(this.computedDate);

????},


多次點擊computed按鈕,返回的時間是相同的浊洞!每次點擊methods按鈕返回的時間是不同的牵敷。

原因正是computed依賴于data中的數(shù)據(jù),new Date()不是依賴型數(shù)據(jù)(不是放在data等對象下的實例數(shù)據(jù))法希,所以computed只提供了緩存的值枷餐,而沒有重新計算。

只有符合:1.存在依賴型數(shù)據(jù) 2.依賴型數(shù)據(jù)發(fā)生改變這兩個條件,computed才會重新計算苫亦。


總結(jié):

支持緩存毛肋,只有依賴數(shù)據(jù)發(fā)生改變怨咪,才會重新進(jìn)行計算;

不支持異步润匙,當(dāng)computed內(nèi)有異步操作時無效诗眨,無法監(jiān)聽數(shù)據(jù)的變化;

computed 屬性值會默認(rèn)走緩存趁桃,計算屬性是基于它們的響應(yīng)式依賴進(jìn)行緩存的辽话,也就是基于data中聲明過或者父組件傳遞的props中的數(shù)據(jù)通過計算得到的值

如果一個屬性是由其他屬性計算而來的,這個屬性依賴其他屬性卫病,是多對一或者一對一油啤,一般用computed

如果computed屬性屬性值是函數(shù),那么默認(rèn)會走get方法蟀苛;函數(shù)的返回值就是屬性的屬性值益咬;在computed中的,屬性都有一個get和一個set方法帜平,當(dāng)數(shù)據(jù)變化時幽告,調(diào)用set方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裆甩,一起剝皮案震驚了整個濱河市冗锁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嗤栓,老刑警劉巖冻河,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茉帅,居然都是意外死亡叨叙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門堪澎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擂错,“玉大人,你說我怎么就攤上這事樱蛤∨パ剑” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵昨凡,是天一觀的道長爽醋。 經(jīng)常有香客問我,道長土匀,這世上最難降的妖魔是什么子房? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任形用,我火速辦了婚禮就轧,結(jié)果婚禮上证杭,老公的妹妹穿的比我還像新娘。我一直安慰自己妒御,他們只是感情好解愤,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乎莉,像睡著了一般送讲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惋啃,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天哼鬓,我揣著相機(jī)與錄音,去河邊找鬼边灭。 笑死异希,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绒瘦。 我是一名探鬼主播称簿,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惰帽!你這毒婦竟也來了憨降?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤该酗,失蹤者是張志新(化名)和其女友劉穎授药,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垂涯,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡烁焙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了耕赘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骄蝇。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖操骡,靈堂內(nèi)的尸體忽然破棺而出九火,到底是詐尸還是另有隱情,我是刑警寧澤册招,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布岔激,位于F島的核電站,受9級特大地震影響是掰,放射性物質(zhì)發(fā)生泄漏虑鼎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炫彩。 院中可真熱鬧匾七,春花似錦、人聲如沸江兢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杉允。三九已至邑贴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叔磷,已是汗流浹背拢驾。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留改基,地道東北人独旷。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像寥裂,于是被迫代替她去往敵國和親嵌洼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容