前端經典面試題 | Computed 和 Watch 的區(qū)別

2023-1-12    前端達人

目錄

一、回答點

二、深入回答

Computed:

Watch:

應用場景:


一、回答點

computed計算屬性: 依賴其他的值,有緩存, 當它依賴的屬性值發(fā)生改變,在下次獲取computed的值時,才會重新計算computed值,而watch監(jiān)聽器,更多的是起到監(jiān)聽的作用,它沒有緩存,每當監(jiān)聽的數據發(fā)生了都會執(zhí)行回調進行后續(xù)的操作.

二、深入回答

Computed:

  • 支持緩存,當依賴的數據發(fā)生變化后,才會重新計算
  • 不支持一步操作,當它里面有 異步操作時,無法監(jiān)聽數據的變化
  • 計算屬性的值 默認會緩存,它是基于響應式依賴進行緩存的,就是 基于data聲明過 或者 從父組件傳遞過來的props中的數據進行金酸
  • 如果一個屬性是由其他屬性計算而來,那么一般會使用計算屬性
  • 如果 計算屬性的屬性值是函數,那么默認會使用get 方法,函數的返回值就是屬性的屬性值,在計算屬性中,有get和set方法,當數據發(fā)生變化時,會調用set方法

Watch:

  • 不支持緩存,當數據發(fā)生變化時,他就會觸發(fā),之后進行對應的操作
  • 它支持異步監(jiān)聽
  • 監(jiān)聽的函數會接收兩個參數,第一個參數是新值,第二個參數是 舊值
  • 當一個屬性發(fā)生變化時,就會執(zhí)行對應的操作
  • 監(jiān)聽數據必須在data中聲明 或這 從父組件傳遞過來的props中的數據 當發(fā)生變化時,會觸發(fā)對應的操作,函數有兩個參數:
    • immediate:組件加載會直接觸發(fā)回調函數
    • deep:深度監(jiān)聽,發(fā)現(xiàn)數據內部的變化,在復雜數據類型中使用.這里要注意的是 deep無法監(jiān)聽到數組和對象內部的變化.

應用場景:

  • 當需要進行計算并依賴其他數據的時候,就使用 計算屬性, 因為可以利用 計算屬性的緩存特性,避免每次獲取值時候都要重新計算.而當它需要執(zhí)行異步操作時 使用watch.
 來源:csdn

藍藍設計建立了UI設計分享群,每天會分享國內外的一些優(yōu)秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~
希望得到建議咨詢、商務合作,也請與我們聯(lián)系01063334945。 

分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯(lián)系,我們立即更正或刪除。 

藍藍設計www.bouu.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司

分享本文至:

日歷

鏈接

個人資料

藍藍設計的小編 http://www.bouu.cn

存檔