Vue3 相比 vue2


Vue3 使用Proxy替代了defineProperty。

Proxy 相比於 defineProperty 的優勢

Object.defineProperty() 的問題主要有三個:

  • 不能監聽數組的變化
  • 必須遍歷對象的每個屬性
  • 必須深層遍歷嵌套的對象

Proxy 在 ES2015 規范中被正式加入,它有以下幾個特點:

  • 針對對象:針對整個對象,而不是對象的某個屬性,所以也就不需要對 keys 進行遍歷。這解決了上述 Object.defineProperty() 第二個問題
  • 支持數組:Proxy 不需要對數組的方法進行重載,省去了眾多 hack,減少代碼量等於減少了維護成本,而且標准的就是最好的。

除了上述兩點之外,Proxy 還擁有以下優勢:

  • Proxy 的第二個參數可以有 13 種攔截方法,這比起 Object.defineProperty() 要更加豐富
  • Proxy 作為新標准受到瀏覽器廠商的重點關注和性能優化,相比之下 Object.defineProperty() 是一個已有的老方法。

 

 缺陷:IE 不兼容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM