本文小編為大家詳細(xì)介紹“vue3中的ref與reactive如何使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“vue3中的ref與reactive如何使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
瑞麗ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!
ref
是 Vue3 中的一個(gè)函數(shù),它可以將一個(gè)普通的變量轉(zhuǎn)化為一個(gè)響應(yīng)式變量。使用 ref
的時(shí)候,我們需要傳入一個(gè)初始值,ref
會(huì)返回一個(gè)包含了這個(gè)初始值的對(duì)象。
使用 ref
的語(yǔ)法如下所示:
import { ref } from 'vue'; const count = ref(0);
在上面的代碼中,我們創(chuàng)建了一個(gè)名為 count
的變量,它的初始值為 0。通過(guò)調(diào)用 ref
函數(shù),我們將 count
變量轉(zhuǎn)化為了一個(gè) ref
對(duì)象。在組件中使用 count
的時(shí)候,我們需要通過(guò) .value
來(lái)訪問(wèn)它的值,且ref.value =
可以修改它的值。但是當(dāng) ref
在模板中作為頂層屬性被訪問(wèn)時(shí),它們會(huì)被自動(dòng)“解包”,所以不需要使用 .value
。:
{{ count }}------------------
注意:在標(biāo)簽中使用無(wú)需加.value
,在函數(shù)中使用必須要加.value
除此之外,ref
還可以用來(lái)監(jiān)聽(tīng) DOM 元素的變化:
這是一個(gè) DOM 元素
在上面的代碼中,我們創(chuàng)建了一個(gè)名為 myDiv
的 ref
對(duì)象,并將它賦值給了一個(gè) div
元素。在組件的 setup
函數(shù)中,我們使用了 onMounted
鉤子函數(shù),在組件渲染完成之后,打印出了 myDiv
元素的 innerHTML
。
reactive
是 Vue3 中的另一個(gè) API,它可以將一個(gè)普通的對(duì)象轉(zhuǎn)化為一個(gè)響應(yīng)式對(duì)象。與 ref
不同的是,reactive
返回的是一個(gè)響應(yīng)式的對(duì)象,而不是一個(gè)包含值的對(duì)象。我們可以通過(guò)訪問(wèn)響應(yīng)式對(duì)象的屬性來(lái)獲取或修改它的值。
使用 reactive 的語(yǔ)法如下所示:
import { reactive } from 'vue'; const state = reactive({ count: 0, });
在上面的代碼中,我們創(chuàng)建了一個(gè)名為 state
的響應(yīng)式對(duì)象,它包含了一個(gè)名為 count
的屬性,初始值為 0。
在組件中使用 state
的時(shí)候,我們可以像訪問(wèn)普通對(duì)象的屬性一樣訪問(wèn)它的屬性:
{{ state.count }}
除了訪問(wèn)屬性之外,reactive
也可以對(duì)普通 JavaScript 對(duì)象或數(shù)組進(jìn)行響應(yīng)式處理,可以通過(guò) reactive
將一個(gè)普通對(duì)象轉(zhuǎn)化為響應(yīng)式對(duì)象,從而實(shí)現(xiàn)對(duì)整個(gè)對(duì)象的響應(yīng)式追蹤,例如:
const obj = { a: 1, b: 2 }; const reactiveObj = reactive(obj); // 響應(yīng)式追蹤 reactiveObj.a = 3; console.log(obj.a); // 輸出 3
reactive 還可以在嵌套對(duì)象和數(shù)組中創(chuàng)建響應(yīng)式對(duì)象,例如:
const obj = { a: 1, b: { c: 2 }, d: [1, 2, 3] }; const reactiveObj = reactive(obj); // 響應(yīng)式追蹤 reactiveObj.b.c = 3; reactiveObj.d.push(4);
reactive 還支持在嵌套對(duì)象中使用 toRefs 將響應(yīng)式對(duì)象的屬性轉(zhuǎn)換為響應(yīng)式引用,方便在模板中使用。例如:
const obj = reactive({ a: 1, b: { c: 2 } }); const { b } = toRefs(obj); // 模板中使用{{ b.c }}
總之,reactive
除了訪問(wèn)屬性之外還能處理整個(gè)對(duì)象或數(shù)組的響應(yīng)式追蹤,以及支持在嵌套對(duì)象中使用 toRefs
方便在模板中使用。
ref
創(chuàng)建的變量可以通過(guò).value
來(lái)獲取和修改其值。例如:
import { ref } from 'vue' // 創(chuàng)建ref const count = ref(0) // 獲取ref的值 console.log(count.value) // 輸出 0 // 修改ref的值 count.value = 1 console.log(count.value) // 輸出 1
reactive
創(chuàng)建的對(duì)象需要通過(guò)解構(gòu)賦值的方式獲取和修改其屬性值。例如:
import { reactive } from 'vue' // 創(chuàng)建reactive對(duì)象 const obj = reactive({ count: 0 }) // 獲取reactive對(duì)象的屬性值 console.log(obj.count) // 輸出 0 // 修改reactive對(duì)象的屬性值 obj.count = 1 console.log(obj.count) // 輸出 1
讀到這里,這篇“vue3中的ref與reactive如何使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。