您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“vue3中的ref與reactive如何使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“vue3中的ref與reactive如何使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
ref
是 Vue3 中的一個函數,它可以將一個普通的變量轉化為一個響應式變量。使用 ref
的時候,我們需要傳入一個初始值,ref
會返回一個包含了這個初始值的對象。
使用 ref
的語法如下所示:
import { ref } from 'vue'; const count = ref(0);
在上面的代碼中,我們創建了一個名為 count
的變量,它的初始值為 0。通過調用 ref
函數,我們將 count
變量轉化為了一個 ref
對象。在組件中使用 count
的時候,我們需要通過 .value
來訪問它的值,且ref.value =
可以修改它的值。但是當 ref
在模板中作為頂層屬性被訪問時,它們會被自動“解包”,所以不需要使用 .value
。:
<template> <div>{{ count }}</div> </template> ------------------ <script setup> import { ref } from 'vue'; const count = ref(0); console.log(count)//RefImpl {...} console.log(count.value)//0 //使用.value改變count count.value = 3; console.log(count.value)//3 </script>
注意:在標簽中使用無需加.value
,在函數中使用必須要加.value
除此之外,ref
還可以用來監聽 DOM 元素的變化:
<template> <div ref="myDiv">這是一個 DOM 元素</div> </template> <script> import { ref, onMounted } from 'vue'; export default { setup() { const myDiv = ref(null); onMounted(() => { console.log(myDiv.value.innerHTML); }); return { myDiv, }; }, }; </script>
在上面的代碼中,我們創建了一個名為 myDiv
的 ref
對象,并將它賦值給了一個 div
元素。在組件的 setup
函數中,我們使用了 onMounted
鉤子函數,在組件渲染完成之后,打印出了 myDiv
元素的 innerHTML
。
reactive
是 Vue3 中的另一個 API,它可以將一個普通的對象轉化為一個響應式對象。與 ref
不同的是,reactive
返回的是一個響應式的對象,而不是一個包含值的對象。我們可以通過訪問響應式對象的屬性來獲取或修改它的值。
使用 reactive 的語法如下所示:
import { reactive } from 'vue'; const state = reactive({ count: 0, });
在上面的代碼中,我們創建了一個名為 state
的響應式對象,它包含了一個名為 count
的屬性,初始值為 0。
在組件中使用 state
的時候,我們可以像訪問普通對象的屬性一樣訪問它的屬性:
<template> <div>{{ state.count }}</div> </template>
除了訪問屬性之外,reactive
也可以對普通 JavaScript 對象或數組進行響應式處理,可以通過 reactive
將一個普通對象轉化為響應式對象,從而實現對整個對象的響應式追蹤,例如:
const obj = { a: 1, b: 2 }; const reactiveObj = reactive(obj); // 響應式追蹤 reactiveObj.a = 3; console.log(obj.a); // 輸出 3
reactive 還可以在嵌套對象和數組中創建響應式對象,例如:
const obj = { a: 1, b: { c: 2 }, d: [1, 2, 3] }; const reactiveObj = reactive(obj); // 響應式追蹤 reactiveObj.b.c = 3; reactiveObj.d.push(4);
reactive 還支持在嵌套對象中使用 toRefs 將響應式對象的屬性轉換為響應式引用,方便在模板中使用。例如:
const obj = reactive({ a: 1, b: { c: 2 } }); const { b } = toRefs(obj); // 模板中使用 <template> <div>{{ b.c }}</div> </template>
總之,reactive
除了訪問屬性之外還能處理整個對象或數組的響應式追蹤,以及支持在嵌套對象中使用 toRefs
方便在模板中使用。
ref
創建的變量可以通過.value
來獲取和修改其值。例如:
import { ref } from 'vue' // 創建ref const count = ref(0) // 獲取ref的值 console.log(count.value) // 輸出 0 // 修改ref的值 count.value = 1 console.log(count.value) // 輸出 1
reactive
創建的對象需要通過解構賦值的方式獲取和修改其屬性值。例如:
import { reactive } from 'vue' // 創建reactive對象 const obj = reactive({ count: 0 }) // 獲取reactive對象的屬性值 console.log(obj.count) // 輸出 0 // 修改reactive對象的屬性值 obj.count = 1 console.log(obj.count) // 輸出 1
讀到這里,這篇“vue3中的ref與reactive如何使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。