慕課1245筆記-快速瞭解新版Vue3.0 + Vite開發

1.vue3簡介

1.1 課程簡介

Compiler原理介紹,瞭解Vue3帶來的性能提升,開發架構上的變化和打包編譯原理。在課程實戰環節中,介紹了最新的API用法、遺棄的API和升級指南。Vite作爲Vue3開發環境,可以實現動態加載,冷啓動 + 編譯,方便開發的同時,使用rollup大幅降低了配置流程,結合Vue3的composition API,更加方便了開發。介紹了這麼多,快來試試吧!

1.2 vue3的優勢:

1.3 vue3.0帶來的變化: 

  • 按需加載,VDom/reactive 算法,e.g. v-model/Transition
  • 組合API
  • TS 支持,新增 Fragment、Teleport、Suspense
  • 性能提升 1.3~2.X

1.4 vue-next-template-explorer 嚐鮮

https://vue-next-template-explorer.netlify.app/#{"src":"<div>Hello World!</div>","options":{"mode":"module","prefixIdentifiers":false,"optimizeImports":false,"hoistStatic":false,"cacheHandlers":false,"scopeId":null,"inline":false,"ssrCssVars":"{ color }","bindingMetadata":{"TestComponent":"setup-const","setupRef":"setup-ref","setupConst":"setup-const","setupLet":"setup-let","setupMaybeRef":"setup-maybe-ref","setupProp":"props","vMySetupDir":"setup-const"}}}

示例:

  

可以看到模板中有四個div,也就是四個根節點,在vue2中,一個模板裏面只能有一個根節點。編譯器使用 createVNode 創建了虛擬節點,並啓用 hoistStatic 能力將靜態節點和動態節點區分,對靜態內容,不再做更新處理。

 上面這個示例,不啓用 cacheHandlers 之前是將事件綁定在當前上下文,啓用了 cacheHandlers 的能力,會將事件進行全局註冊。在定義組件的場景下,啓用 cacheHandlers 就不會對重複創建的組件上的事件多次實例化。

ssr 模式下,抽離了靜態節點,轉化爲string字符串。

 根據上面幾個實例,可以看到 compiler 優化的幾點:

  • 靜態節點不在做更新處理(hoistStatic -> SSR)
  • 靜態綁定的class id等屬性不做更新處理
  • 結合打包hint,進行更新分析(動態綁定)
  • 事件監聽器 Cache 緩存處理(cacheHandlers)
  • hoistStatic自動針對多靜態節點進行優化,輸出字符串
  • 按需加載,當模板爲空時,輸出爲null

總結起來就是:

  • virtual dom機制調整
  • 內存優化
  • 按需加載,更靈活的組件化

2.vue3的使用

setup 的 this 是個 void。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章