Vue進階二十八):淺析Vue中computed與method的區別

      網友投稿 764 2025-04-03

      1.computed區別于method的兩個點:

      computed是屬性調用,而methods是函數調用;

      computed帶有緩存功能,而methods不是;

      下面我們看一個具體的例子

      {{message}}

      {{methodTest}}

      {{methodTest()}}

      {{methodTest()}}

      {{methodTest()}}

      {{computedTest}}

      {{computedTest}}

      let vm = new Vue({ el: '#app', data: { message: '我是消息,' }, methods: { methodTest() { return this.message + '現在我用的是methods' } }, computed: { computedTest() { return this.message + '現在我用的是computed' } } })

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      Vue進階(二十八):淺析Vue中computed與method的區別

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      computed的屬性調用

      在HTML的插值里computed定義的方法我們是以屬性訪問的形式調用的,{{computedTest}}

      但是methods定義的方法,我們必須要加上()來調用,如{{methodTest()}},否則,視圖會出現test1的情況,見下圖

      computed的緩存功能

      首先,我們要明白緩存究竟有什么用?想必大家都知道HTTP緩存,其核心作用就是對一些服務端未更新的資源進行復用,避免一些無謂的請求,優化了用戶的體驗。

      對于computed也是一樣的:

      在上面的例子中,methods定義的方法是以函數調用的形式來訪問的,那么test2-1,test2-2,test2-3是反復地將methodTest方法運行了三遍,如果我們碰到一個場景,需要1000個methodTest的返回值,那么毫無疑問,這勢必造成大量的浪費

      更恐怖的是,如果你更改了message的值,那么這1000個methodTest方法每一個又會重新計算。

      所以,官方文檔反復強調對于任何復雜邏輯,你都應當使用計算屬性。

      computed依賴于data中的數據,只有在它的相關依賴數據發生改變時才會重新求值。

      如上例,在Vue實例化的時候,computed定義computedTest方法會做一次計算,返回一個值,在隨后的代碼編寫中,只要computedTest方法依賴的message數據不發生改變,computedTest方法是不會重新計算的,也就是說test3-1,test3-2是直接拿到了返回值,而非是computedTest方法重新計算的結果。

      這樣的好處也是顯而易見的,同樣的,如果我們碰到一個場景,需要1000個computedTest的返回值,那么毫無疑問,這相對于methods而言,將大大地節約內存。哪怕你改變了message的值,computedTest也只會計算一次而已。

      computed的其它說明

      computed其實是既可以當做屬性訪問也可以當做方法訪問。

      computed的由來有一個重要原因,就是防止文本插值中邏輯過重,導致不易維護。

      Vue

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Word中流程圖怎么畫?Word制作基本流程圖的圖文教程(Word中怎么畫流程圖)
      下一篇:圖片的鑲嵌式怎么弄(圖片鑲嵌型怎么操作)
      相關文章
      亚洲欧美成人一区二区三区| 亚洲午夜成激人情在线影院| 亚洲国产精品无码久久98| 亚洲成人网在线观看| 久久亚洲日韩精品一区二区三区| 亚洲国产精品一区第二页| 亚洲精品无码永久中文字幕| 久久久久一级精品亚洲国产成人综合AV区 | 国产亚洲精品成人AA片| 亚洲免费在线视频观看| 亚洲最大的视频网站| 亚洲国产成人久久三区| 亚洲免费电影网站| 亚洲最大av资源站无码av网址| 亚洲中文字幕一区精品自拍| 中文字幕亚洲精品无码| 亚洲精品蜜夜内射| 亚洲GV天堂GV无码男同 | 亚洲不卡中文字幕无码| 亚洲成在人线av| 亚洲电影一区二区三区| 噜噜噜亚洲色成人网站∨| 久久精品国产亚洲av麻豆色欲| 亚洲精品视频免费看| 亚洲剧情在线观看| 亚洲综合无码无在线观看| 亚洲日韩AV一区二区三区中文 | 亚洲国产午夜精品理论片在线播放 | 久久精品亚洲日本佐佐木明希| 婷婷亚洲久悠悠色悠在线播放| 中文字幕亚洲精品| 亚洲国产精品成人综合色在线婷婷| 亚洲一区在线视频观看| 亚洲综合无码无在线观看| 久久久久亚洲AV无码去区首| 亚洲视频一区二区| 亚洲国产精品嫩草影院在线观看 | 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲欧洲美洲无码精品VA| 亚洲va在线va天堂va不卡下载 | 国产a v无码专区亚洲av|