快速認識Vue3
主要改進:
1、提升運行時性能:重寫vDOM
2、提升網絡性能:tree-shaking 機制
3、完全的 typescript 支持
4、便利性改進
5、自定義的 Renderer API
6、生態圈改進
一、vDOM 重寫
大幅提升運行時性能:
什么是vDOM:虛擬DOM元素,提升性能
效果如何:提升30%-300%
核心思想:跳過靜態節點,只處理動態節點
性能上,主要是優化了虛擬 DOM,所以也就有了更加優化的編譯,同時實現了更加高效的組件初始化。
二、tree-shaking 機制
大幅提升網絡性能:
什么是 tree :依賴樹,所有的依賴都是 tree 的節點
如何 shaking :通過代碼反向檢測哪些特性被用到
效果如何:只打包必要的依賴項
三、底層 typescript 支持
為什么使用 ts :
強大的類型系統、類型提示:大型應用必備
Vue3 支持情況如何:完成用 typescript 重寫
開發工具支持:使用 Javascript 也有好處
四、便利性改進
方便終端用戶使用:
·Fragment(碎片): 模板更簡單
- No longer limited to a single root node in templates (
<template>
中不再局限於單一的根節點) - Manual render functions can simply return Arrays (
render
函數可以返回數組) - “Just works”
·Teleport(傳送): 布局更靈活
- Previously known as
<Portal>
(原名為<Portal>
) - More details to be shared by @Linusborg
·Suspense(異步加載): 強大的異步組件
- Wait on nested async dependencies in a nested tree
- Works with async setup() (與 async 函數
setup()
配合使用) - Works with Async Components (與 Async 組件配合使用)
·composition-api: 邏輯重用: 代替了mixin
Composition API 主要是提高了代碼邏輯的可復用性,並且將 Reactivity 模塊獨立出來,這也使得 vue 3 變得更加靈活地與其他框架組合使用。
五、Custom Renderer API
- NativeScript Vue integration underway by @rigor789
- Users already experimenting w/ WebGL custom renderer that can be used alongside a normal Vue application (Vugel)
自定義 render
。我們會提供一個 API 用來創建自定義的 render
,因此你不需要為了自定義一些功能而 fork Vue 的代碼。這個特性給 Weex 和 NativeScript Vue 這樣的項目提供了很多便利。
六、生態圈支持
Vue3 相關配套全面升級:
·vue-router@next
·vuex@next
·vue-cli-plugin-vue-next: 生成 vue3 項目的 cli 工具
·test-utils@next (測試工具)
·DevTools、Vite
Vue2 呢?
同時,團隊已開始啟動 2.7 的開發工作計划,這將是 2.x 的最后一個次要版本。2.7 將向后移植來自 v3 的兼容改進,並會提示有關 v3 中已刪除/更改的 API 使用情況的警告。團隊表示計划在 2021 年第一季度開發 2.7,發布后將直接變為 LTS 版本,具有 18 個月的維護周期。后面就不再支持2.X的更新了,除非有安全性問題。
Vue2.7:
·融入一部分 Vue3 功能
·LTE 支持18個月,之后以安全性更新為主