一、其它Composition API
1. shallowReactive 與 shallowRef
shallowReactive:只處理對(duì)象最外層屬性的響應(yīng)式(淺響應(yīng)式)。
shallowRef:只處理基本數(shù)據(jù)類型的響應(yīng)式,不進(jìn)行對(duì)象的響應(yīng)式處理。
什么時(shí)候使用?
如果有一個(gè)對(duì)象數(shù)據(jù),結(jié)構(gòu)比較深,但變化時(shí)只是外層屬性變化 ===> shallowReactive
如果有一個(gè)對(duì)象數(shù)據(jù),后續(xù)功能不會(huì)修改該對(duì)象中的屬性,而是生新的對(duì)象來(lái)替換 ===> shallowRef
import { shallowReactive} from 'vue'
setup(){
let person = shallowReactive({ //只考慮第一層數(shù)據(jù)的響應(yīng)式
name:'張三',
job:{
j1:'軟件工程師'
}
})
}
2. readonly 與 shallowReadonly
- readonly:讓一個(gè)響應(yīng)式數(shù)據(jù)變?yōu)橹蛔x的(深只讀)。
- shallowReadonly:讓一個(gè)響應(yīng)式數(shù)據(jù)變?yōu)橹蛔x的(淺只讀)。
- 應(yīng)用場(chǎng)景:不希望數(shù)據(jù)被修改時(shí)。
3. toRaw 與 markRaw
- toRaw:
作用:將一個(gè)由reactive生成的響應(yīng)式對(duì)象轉(zhuǎn)為普通對(duì)象。
使用場(chǎng)景:用于讀取響應(yīng)式對(duì)象對(duì)應(yīng)的普通對(duì)象,對(duì)這個(gè)普通對(duì)象的所有操作,不會(huì)引起頁(yè)面更新。
- markRow:
作用:標(biāo)記一個(gè)對(duì)象,使其永遠(yuǎn)不會(huì)再成為響應(yīng)式。
應(yīng)用場(chǎng)景:
(1)有些值不應(yīng)被設(shè)置為響應(yīng)式,例如復(fù)雜的第三方類庫(kù)等。
(2)當(dāng)渲染具有不可變數(shù)據(jù)源的大列表時(shí),跳過響應(yīng)式轉(zhuǎn)換可以提高性能。
4、customRef
- 作用:創(chuàng)建一個(gè)自定義的ref,并對(duì)其依賴項(xiàng)跟蹤和更新觸發(fā)進(jìn)行顯式控制。
- 官網(wǎng)示例: 創(chuàng)建一個(gè)防抖 ref,只在最近一次set調(diào)用后的一段固定間隔后再調(diào)用
5、provide 與 inject
- 作用:實(shí)現(xiàn)祖與后代組件間通信
- 套路:父組件中有一個(gè)provide選項(xiàng)來(lái)提供數(shù)據(jù),后代組件有一個(gè)inject選項(xiàng)來(lái)開始使用這些數(shù)據(jù)
- 具體寫法:
祖組件中:
setup(){
let car = reactive({name:'奔馳', price:'40萬(wàn)'})
provide('car', car)
}
孫組件(后代組件)中:
setup(){
const car = inject('car')
return {
car
}
}
6. 響應(yīng)式數(shù)據(jù)的判斷
isRef:檢查一個(gè)值是否為一個(gè)ref對(duì)象
isReactive:檢查一個(gè)對(duì)象是否是由reactive創(chuàng)建的響應(yīng)式代理
isReadonly:檢查一個(gè)對(duì)象是否是由readonly創(chuàng)建的只讀代理
isProxy:檢查一個(gè)對(duì)象是否是由reactive或者readonly方法創(chuàng)建的代理文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-695070.html
二、參考鏈接
[01] Vue3學(xué)習(xí)筆記(尚硅谷)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-695070.html
到了這里,關(guān)于557、Vue 3 學(xué)習(xí)筆記 -【常用Composition API(六)】 2023.09.05的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!