Vue3中toRef與toRefs的區(qū)別
作用:創(chuàng)建一個(gè)ref對(duì)象,其value值指向另外一個(gè)對(duì)象中的某個(gè)屬性。這樣在模板中就可以直接使用屬性名而不用麻煩的再加對(duì)象名前綴了。
語法:
const name = toRef(person,'name')
應(yīng)用:要將響應(yīng)式對(duì)象中的某個(gè)屬性單獨(dú)提供給外部使用時(shí)。
擴(kuò)展:toRefs與toRef功能一致,但可以批量創(chuàng)建多個(gè)ref對(duì)象,需要注意的是它只會(huì)解析對(duì)象的第一層屬性,語法直接傳入對(duì)象 toRefs(person)
示例:
toRef
<template>
<span>{{person}}</span>
<h2>姓名:{{name}}</h2>
<h2>年齡:{{age}}</h2>
<h2>薪資:{{salary}}K</h2>
<button @click="name+='~'">修改姓名</button>
<button @click="age++">增漲年齡</button>
<button @click="salary++">漲薪</button>
</template>
<script>
import {reactive,toRef,toRefs} from 'vue'
export default{
name:'App',
setup(){
let person = reactive({
name:'張三',
age:18,
job:{
j1:{
salary:20
}
}
})
return {
person, //如果只是像之前一樣定義reactive后 模板中需要使用屬性都要加上對(duì)象名(person.name)
name:toRef(person,'name'),
age:toRef(person,'age'),
salary:toRef(person.job.j1,'salary')
/*
但有了toRef后就可以在return中定義數(shù)據(jù)名稱,使用toRef轉(zhuǎn)換為ref的響應(yīng)式基本數(shù)據(jù),
在模板中就不用再繁瑣的加對(duì)象名,并且是雙向綁定,模板中的修改也會(huì)影響到原對(duì)象
*/
}
}
}
</script>在線瀏覽效果:

toRefs
<script>
import {reactive,toRef,toRefs} from 'vue'
export default{
name:'App',
setup(){
let person = reactive({
name:'張三',
age:18,
job:{
j1:{
salary:20
}
}
})
return {
person,
...toRefs(person)
/*
toRefs會(huì)將對(duì)象第一層的屬性都轉(zhuǎn)換為ref基本類型所以用到ES6的語法將這些基本類型都展開來
注意??!toRefs只會(huì)將第一層轉(zhuǎn)換為ref基本類型
*/
}
}
}
</script>瀏覽器效果圖:

到此這篇關(guān)于Vue3中toRef與toRefs的區(qū)別的文章就介紹到這了,更多相關(guān)toRef與toRefs內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用自定義事件的表單輸入組件用法詳解【日期組件與貨幣組件】
這篇文章主要介紹了vue使用自定義事件的表單輸入組件用法,結(jié)合實(shí)例形式詳細(xì)分析了vue.js日期組件與貨幣組件相關(guān)操作技巧及注意事項(xiàng),需要的朋友可以參考下2020-06-06
Vue data的數(shù)據(jù)響應(yīng)式到底是如何實(shí)現(xiàn)的
這篇文章主要介紹了Vue data的數(shù)據(jù)響應(yīng)式到底是如何實(shí)現(xiàn)的,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
vue動(dòng)態(tài)路由加載時(shí)出現(xiàn)Cannot?find?module?xxx問題
這篇文章主要介紹了vue動(dòng)態(tài)路由加載時(shí)出現(xiàn)Cannot?find?module?xxx問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
vue基于v-charts封裝雙向條形圖的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue基于v-charts封裝雙向條形圖的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
vuejs實(shí)現(xiàn)標(biāo)簽選項(xiàng)卡動(dòng)態(tài)更改css樣式的方法
這篇文章主要介紹了vuejs實(shí)現(xiàn)標(biāo)簽選項(xiàng)卡-動(dòng)態(tài)更改css樣式的方法,代碼分為html和js兩部分,需要的朋友可以參考下2018-05-05
vue實(shí)現(xiàn)移動(dòng)端多格輸入框
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端多格輸入框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化的教程
所謂數(shù)據(jù)可視化,我們可以理解為從宏觀角度來看一眼就能看出來整個(gè)數(shù)據(jù)的占比,走向,對(duì)于數(shù)據(jù)可視化,很多互聯(lián)網(wǎng)公司是很看重這一塊的,包括大廠,本就將給大家介紹如何通過Vue+ECharts+高德地圖API實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)可視化2023-06-06

