關于 computed

computed watch 區(qū)別

computed
computed 是計算屬性,它會根據(jù)你所依賴的數(shù)據(jù)動態(tài)顯示新的計算結(jié)果
在vue實例初始化已近開始計算

計算屬性將被加入到 Vue 實例中。所有 getter 和 setter 的 this 上下文自動地綁定為 Vue 實例

通過計算出來的屬性不需要調(diào)用直接可以在 DOM 里使用

如果不使用計算屬性,那么代碼函數(shù)在dom里
會對頁面的可維護性造成很大的影響

而且計算屬性如果依賴不變的話颤枪,它就會變成緩存陌僵,computed 的值就不會重新計算

所以沟涨,如果數(shù)據(jù)要通過復雜邏輯來得出結(jié)果葵萎,那么就推薦使用計算屬性

watch
一個對象胶征,鍵是 data 對應的數(shù)據(jù)塞椎,值是對應的回調(diào)函數(shù)。值也可以是方法名睛低,或者包含選項的對象案狠,當 data 的數(shù)據(jù)發(fā)生變化時,就會發(fā)生一個回調(diào)钱雷,他有兩個參數(shù)骂铁,一個 val (修改后的 data 數(shù)據(jù)),一個 oldVal(原來的 data 數(shù)據(jù))
Vue 實例將會在實例化時調(diào)用$watch()罩抗,遍歷 watch 對象的每一個屬性

注意:不應該使用箭頭函數(shù)來定義 watcher 函數(shù)拉庵,因為箭頭函數(shù)沒有 this,它的 this 會繼承它的父級函數(shù)套蒂,但是它的父級函數(shù)是 window钞支,導致箭頭函數(shù)的 this 指向 window,而不是 Vue 實例

優(yōu)化 局部變量

  computed: {
    res({ start, end, arr}) { 
      let result = start
      for (let i = 0; i < 1000; i++) {
        result += 2
        ...
      }
      return res
    },
  },

而優(yōu)化后的組件會在計算前先用局部變量 start, end, arr操刀,緩存起來烁挟,后面直接訪問。
優(yōu)化前后的組件的計算屬性 result 的實現(xiàn)差異骨坑,優(yōu)化前的組件多次在計算過程中訪問this.{ start, end, arr}

為什么 局部變量好一點撼嗓,原因是你每次訪問 this.base 的時候,由于 this.{ start, end, arr}是一個響應式對象欢唾,所以會觸發(fā)它的 getter且警,進而會執(zhí)行依賴收集相關邏輯代碼。類似的邏輯執(zhí)行多了匈辱,像示例這樣振湾,幾百次循環(huán)更新幾百個組件,每個組件觸發(fā) computed 重新計算亡脸,然后又多次執(zhí)行依賴收集相關邏輯押搪,性能自然就下降了。

是一個非常實用的性能優(yōu)化技巧浅碾。因為很多人在開發(fā) Vue.js 項目的時候大州,每當取變量的時候就習慣性直接寫 this.xxx 了.在訪問次數(shù)不多的時候,性能問題并沒有凸顯垂谢,但是一旦訪問次數(shù)變多厦画,比如在一個大循環(huán)中多次訪問,類似示例這種場景,就會產(chǎn)生性能問題了根暑。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末力试,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子排嫌,更是在濱河造成了極大的恐慌畸裳,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淳地,死亡現(xiàn)場離奇詭異怖糊,居然都是意外死亡,警方通過查閱死者的電腦和手機颇象,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門伍伤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人遣钳,你說我怎么就攤上這事扰魂。” “怎么了蕴茴?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵阅爽,是天一觀的道長。 經(jīng)常有香客問我荐开,道長,這世上最難降的妖魔是什么简肴? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任晃听,我火速辦了婚禮,結(jié)果婚禮上砰识,老公的妹妹穿的比我還像新娘能扒。我一直安慰自己,他們只是感情好辫狼,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布初斑。 她就那樣靜靜地躺著,像睡著了一般膨处。 火紅的嫁衣襯著肌膚如雪见秤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天真椿,我揣著相機與錄音鹃答,去河邊找鬼。 笑死突硝,一個胖子當著我的面吹牛测摔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锋八,長吁一口氣:“原來是場噩夢啊……” “哼浙于!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起挟纱,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤羞酗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后樊销,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體整慎,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年围苫,在試婚紗的時候發(fā)現(xiàn)自己被綠了裤园。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡剂府,死狀恐怖拧揽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腺占,我是刑警寧澤淤袜,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站衰伯,受9級特大地震影響铡羡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜意鲸,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一烦周、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧怎顾,春花似錦读慎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至募强,卻和暖如春株灸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钻注。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工蚂且, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人幅恋。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓杏死,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淑翼,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

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