千鋒教育前端Vue3.0全套視頻教程(Kerwin2023版,Vue.js零基礎(chǔ)

Ref家族:
一.屬性
在Vue中一般很少用到直接操作DOM,但不可避免會需要用到,這時可以通過ref和$refs來實現(xiàn)。
1.ref當(dāng)作屬性時,用來給元素或者子組件注冊引用信息(代替id),使用ref屬性標(biāo)識頁面元素或子組件之后,被標(biāo)識的元素或者子組件會被所在的組件實例對象收集,掛在在所在組件實例對象的$ref屬性上。

2.$refs是所有注冊過ref的集合(對象),可以用$refs訪問組件中的屬性以及方法。
注意:$refs不是響應(yīng)式的,只有在組件渲染完成之后才能填充,想要獲取DOM數(shù)據(jù)更新之后的數(shù)據(jù)需要使用:this.$nextTick()。

二.方法
1.ref可以用來創(chuàng)建響應(yīng)式數(shù)據(jù),在 setup 中聲明的變量是普通變量,沒有響應(yīng)式能力,Vue提供了兩個方法:ref和reactive。
兩者區(qū)別:
ref:可以將數(shù)據(jù)(基本數(shù)據(jù)類型和引用數(shù)據(jù)類型都可以使用)轉(zhuǎn)換為響應(yīng)式數(shù)據(jù)(引用數(shù)據(jù)類型不推薦使用),使用的時候需要添加.value。
reactive:可以將引用數(shù)據(jù)類型轉(zhuǎn)換為響應(yīng)式數(shù)據(jù)。
2.toRefs:幫助我們解構(gòu)一個響應(yīng)式對象,并且得到的還是一個響應(yīng)式數(shù)據(jù)。
3.toRef:如果解構(gòu)的時候,屬性不確定是否擁有,可以使用這個方法
標(biāo)簽: