1. vue2和vue3雙向數據綁定原理發生了改變
vue2 的雙向數據綁定是利用ES5 的一個 API Object.definePropert()對數據進行劫持 結合 發布訂閱模式的方式來實現的。
vue3 中使用了 es6 的 ProxyAPI 對數據代理。
相比於vue2.x,使用proxy的優勢如下
1.defineProperty只能監聽某個屬性,不能對全對象監聽,而proxyAPI則可以監聽整個對象
2.可以省去for in、閉包等內容來提升效率(直接綁定整個對象即可)
3.可以監聽數組,不用再去單獨的對數組做特異性操作 vue3.x可以檢測到數組內部數據的變化
2.移除過濾器filters
vue3x刪除了filters 並推薦使用computed代替計算屬性,在2x中filters和computed有許多相似之處,這個不僅增加了學習成本也增加了維護成本,因此在3.0的中完全摒棄了filters。
3.生命周期的變化
- 移除了beforeCreate()和Created()
- 新增了setup().
- 在剩余六個函數之前加入了on
4.支持多節點組件
在2.0中我們需要 在template標簽內包一個div來防止用戶意外創建多根組件時發出的警告,即
<template>
<div>
<header></header>
<main></main>
<footer></footer>
</div>
</template>
但在3.0中這樣做不是必須的 。