vue3和20的語法區別?
1、vue2使用Object.defineProperty方法實現響應式數據,vue3使用proxy實現響應式數據
Object.defineProperty的缺點:
無法檢測到對象屬性的動態添加和刪除
無法檢測到數組的下標和length屬性的變更
解決方法:
vue2提供Vue.$set動態給對象添加屬性
Vue.$delete動態刪除對象屬性
重寫數組的方法,檢測數組變更
proxy的缺點:
es6的proxy不支持低版本瀏覽器(IE11)
會針對IE11出一個特殊版本進行支持
proxy的有點:
可以堅持到代理對象屬性的動態新增和刪除
可以監測到數組的下標和length屬性的變化
2、vue3新特性:
①:數據響應重新實現(ES6的proxy代替ES5的Object.defineProperty)
②:源碼使用ts重寫,更好的類型推導
③:虛擬DOM新算法(更快、更小)
④:提供了composition api,為更好的邏輯復用與代碼組織
⑤:自定義渲染器(app、小程序、游戲開發)
⑥:Fragment,模板可以有多個根元素