Vue3中toRef與toRefs的區(qū)別
作用:創(chuàng)建一個ref對象,其value值指向另外一個對象中的某個屬性。這樣在模板中就可以直接使用屬性名而不用麻煩的再加對象名前綴了。
語法:
const name = toRef(person,'name')
應(yīng)用:要將響應(yīng)式對象中的某個屬性單獨提供給外部使用時。
擴展:toRefs
與toRef
功能一致,但可以批量創(chuàng)建多個ref對象,需要注意的是它只會解析對象的第一層屬性,語法直接傳入對象 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后 模板中需要使用屬性都要加上對象名(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ù), 在模板中就不用再繁瑣的加對象名,并且是雙向綁定,模板中的修改也會影響到原對象 */ } } } </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會將對象第一層的屬性都轉(zhuǎn)換為ref基本類型所以用到ES6的語法將這些基本類型都展開來 注意??!toRefs只會將第一層轉(zhuǎn)換為ref基本類型 */ } } } </script>
瀏覽器效果圖:
到此這篇關(guān)于Vue3中toRef與toRefs的區(qū)別的文章就介紹到這了,更多相關(guān)toRef與toRefs內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3+elementPlus項目支持生成、設(shè)置默認附件方式
這篇文章主要介紹了vue3+elementPlus項目支持生成、設(shè)置默認附件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03vue2項目實現(xiàn)自定義右鍵菜單,可添加圖標、事件等方式
這篇文章主要介紹了vue2項目實現(xiàn)自定義右鍵菜單,可添加圖標、事件等方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04Vue項目中大文件切片上傳實現(xiàn)秒傳與斷點續(xù)傳的詳細實現(xiàn)過程
這篇文章主要給大家介紹了關(guān)于Vue項目中大文件切片上傳實現(xiàn)秒傳與斷點續(xù)傳的詳細實現(xiàn)過程, 在開發(fā)中,如果上傳的文件過大,可以考慮分片上傳,分片就是說將文件拆分來進行上傳,將各個文件的切片傳遞給后臺,然后后臺再進行合并,需要的朋友可以參考下2023-08-08