1. 程式人生 > 其它 >Vue3學習筆記

Vue3學習筆記

 

 

Proxy資料檢視原理

Vue2中資料檢視如果是物件型別的,通過Object.defineProperty()的getter和setter來做到資料監視的;

  Vue2中監視資料的弊端:

  新增屬性,刪除屬性,介面不會更新.

  直接通過下邊修改資料.介面不會更新.

Vue3中就不會出現上面的情況.

 

相比Vue2

打包大小減少41%

初次渲染快55%,更新渲染快133%

記憶體減少54%

使用Proxy代替defineProperty實現資料響應式

重寫虛擬DOM的實現和Tree-Shaking

 

建立Vue3專案(通過Vite來建立)

node版本:  14.16.3      npm版本:  6.14.13

npm create vite@latest vue3-demo --template vue

npm install

npm run dev

 

vue3中ref使用

參考: https://blog.csdn.net/weixin_47886687/article/details/112919563

 

keep-alive

<!-- 失活的元件將會被快取!-->

<keep-alive>

  <component :is="currentTabComponent"></component>

</keep-alive>

 

Provide / Inject

使用一對provide和inject,無論元件層次有多深,父元件都可以作為其所有子元件的依賴提供者.

 

Props驗證

 

v-for 與 v-if 一同使用

可以把 v-for 移動到 <template> 標籤中來修正

<template v-for="todo in todos" :key="todo.name">

  <li v-if="!todo.isComplete">

    {{ todo.name }}

  </li>

</template>

 

生命週期

beforeCreate

created

beforeMount

mounted

beforeUpdate

updated

beforeUnmount

unmounted

 

防抖和節流

詳見:  https://v3.cn.vuejs.org/guide/data-methods.html#%E6%96%B9%E6%B3%95

防抖:觸發高頻事件後n秒內函式只會執行一次,如果n秒內高頻事件再次被觸發,則重新計算時間.
使用場景:頻繁觸發、輸入框搜尋.
因為防抖的特性,一直執行最後一次的觸發,所以可以用於滑鼠移動確定最後一次移動的時候的座標位置.

節流:高頻事件觸發,但在n秒內只會執行一次,所以節流會稀釋函式的執行頻率.
使用場景:頻繁觸發、onrize,onscroll滾動條.
因為節流是監聽到第一次觸發事件後就執行,所以可以用來防止按鈕多次點選執行多次,且按照第一次點選的事件為準.

 

通過腳手架Vite建立專案:

npm init vite@latest my-vue-app --template vue