vue3.0组合式api语法使用总结
目錄
1.setup使用
2.生命周期函數
Vue應用程序中有4個主要事件
3.vuex
4.toRef介紹
5.ref介紹
6.組件傳值
7.shallowRef和shallowReactive
8.watchEffect
9.watch偵聽器
10.computed
11.reactive介紹
12.toRefs介紹
13.Fragment
14.Teleport
15.Suspense
vue2開發缺點和vue3開發優點
- vue2代碼冗余,雜亂
- vue3則可以把相關的功能代碼抽離分割在一起,方便開發者快速閱讀
1.setup使用
- setup函數是 Composition API(組合API)的入口
- setup是啟動頁面后會自動執行的一個函數
- 項目中定義的所有變量,方法等都需要在setup中
- 在setup函數中定義的變量和方法最后都需要 return 出去, 否則無法在視圖層中使用
2.生命周期函數
- onBeforeMount —— 在掛載開始之前被調用
- onMounted —— 組件掛載時調用
- onBeforeUpdate —— 數據更新時調用
- onUpdated —— 數據更改導致的虛擬 DOM 重新渲染,在這之后會調用該鉤子
- onBeforeUnmount —— 在卸載組件實例之前調用
- onErrorCaptured —— 當捕獲一個來自子孫組件的錯誤時被調用
Vue應用程序中有4個主要事件
- 創建 — 在組件創建時執行
- 掛載 — DOM 被掛載時執行
- 更新 — 當響應數據被修改時執行
- 銷毀 — 在元素被銷毀之前立即運行
3.vuex
- 同vue2一致
- 需要安裝,引入
4.toRef介紹
- toRef也可以創建一個響應式數據
- ref本質是拷貝粘貼一份數據,脫離了與原數據的交互
- ref函數將對象中的屬性變成響應式數據,修改響應式數據是不會影響到原數據,但是會更新視圖層
- toRef的本質是引用,與原始數據有交互,修改響應式數據會影響到原數據,但是不會更新視圖層
- 使用需引入
5.ref介紹
- ref?為我們的值創建了一個響應式引用
- 使用需引用
- 當ref里的值發生改變時,視圖層會自動更新
- ref可操作基本數據類型,也可以操作復雜數據類型:對象,數組
- 建議:ref用來操作基本數據類型:數字,字符串
6.組件傳值
//第一種:進入頁面即刻傳值(祖孫傳值) const p1 = reactive({name:'林一',age:52}) provide('p',p1)//祖傳const res = inject('p')//孫收//第二種:點擊傳值 <Vue ref="val"/>//引入子組件,使用ref調用該子組件 const val = ref() const p1 = reactive({name:'林一',age:52}) function btn(){val.value.receive(p1) }7.shallowRef和shallowReactive
- shallowRef只處理基本類型數據
- shallowReactive只處理第一層數據
- 使用需引入
8.watchEffect
- watchEffect 如果存在的話,在組件初始化的時候就會執行一次用以收集依賴
- watch 可以獲取到新值與舊值(更新前的值),而??watchEffect是拿不到的?
- ?watchEffect不需要指定監聽的屬性,他會自動的收集依賴, 只要我們回調中引用到了 響應式的屬性, 那么當這些屬性變更的時候,這個回調都會執行,而?watchEffect?只能監聽指定的屬性而做出變更
- 使用需引入
9.watch偵聽器
- 與vue2一致,均是用來偵聽數據變化的,沒有緩存,可監聽data中數據,支持異步
- 使用需引入
10.computed
- 與vue2一致,均是用來監聽數據變化
- 是根據依賴關系進行緩存的計算,只有在它的相關依賴發生改變時才會進行更新
- 不能再data中出現同樣的名字
- 使用需引入
11.reactive介紹
- reactive同樣為我們的值創建了一個響應式引用
- 定義基本普通類型數據不能用reactive,用ref
- reactive主要定義復雜數據類型,比如數組,對象
- reactive可響應深層次的數據,比如多維數組
- reactive返回一個響應式的proxy對象
- 使用需引入
12.toRefs介紹
- 用于批量設置多個數據為響應式數據
- toRefs與原始數據有交互,修改響應式數據會影響到原數據,但是不會更新視圖層
- toRefs還可以與其他響應式函數交互,更加方便處理視圖層數據
- 使用需引入
13.Fragment
- 在Vue2中: 組件必須有一個根標簽
- 在Vue3中: 組件可以沒有根標簽, 內部會將多個標簽包含在一個Fragment虛擬元素中
- 好處: 減少標簽層級, 減小內存占用
14.Teleport
?`Teleport` 是一種能夠將我們的<strong style="color:#DD5145">組件html結構</strong>移動到指定位置的技術。
<teleport to="移動位置"><div v-if="isShow" class="mask"><div class="dialog"><h3>我是一個彈窗</h3><button @click="isShow = false">關閉彈窗</button></div></div></teleport>15.Suspense
- 等待異步組件時渲染一些額外內容,讓應用有更好的用戶體驗
- 使用步驟:
??- 異步引入組件
import {defineAsyncComponent} from 'vue' const Child = defineAsyncComponent(()=>import('./components/Child.vue'))使用```Suspense```包裹組件,并配置好```default``` 與 ```fallback```
<template><div class="app"><h3>我是App組件</h3><Suspense><template v-slot:default><Child/></template><template v-slot:fallback><h3>加載中.....</h3></template></Suspense></div> </template>?
?????? ?作者:船長在船上
🚩🚩🚩 ?主頁:來訪地址船長在船上的博客
🔨🔨🔨 ?簡介:CSDN前端領域博客專家,CSDN前端領域優質創作者,資深前端開發工程師,專注web前端領域開發,在CSDN分享工作中遇到的問題以及問題解決方法和對項目開發的實際案例總結以及新技術的認識。
總結
以上是生活随笔為你收集整理的vue3.0组合式api语法使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A-priori算法
- 下一篇: 关于医学影像中的轴位面(横断面)、冠状面