Vue3中的shallowRef?和shallowReactive對比分析
shallowRef
只處理基本數(shù)據(jù)類型的響應(yīng)式, 不進行對象的響應(yīng)式處理。


<template>
<h1>{{ user.age }}</h1>
<button @click="user.age++">點擊+</button>
</template>
<script setup lang="ts">
import { reactive, ref, shallowReactive, shallowRef } from 'vue';
let user = shallowRef({
age: 0
});
</script>shallowReactive
只處理對象最外層屬性的響應(yīng)式(淺響應(yīng)式)


<template>
<h1>user.a.b {{ user.a.b }}</h1>
<button @click="user.a.b++">點擊+</button>
</template>
<script setup lang="ts">
import { reactive, ref, shallowReactive, shallowRef } from 'vue';
let user = shallowReactive({
age: 0,
a: {
b: 0
}
});
</script>
關(guān)于Vue3中shallowRef和shallowReactive的使用 可以參考下。
vue3的shallowRef()、shallowReactive()和shallowReadonly()
1.shallowReactive():使用shallowReactive轉(zhuǎn)化的對象只有對象的第一層級有響應(yīng)式。

2.shallowRef():使用shallowRef轉(zhuǎn)化的基本數(shù)據(jù)類型和使用ref沒有差別,使用shallowRef轉(zhuǎn)化的對象都會失去響應(yīng)式。
3.shallowReadonly():使用shallowReadonly轉(zhuǎn)化的對象,只會在對象第一層級才有只讀,除此之外都還具有響應(yīng)式。

3.運用場景

如果有數(shù)據(jù)是別的組件傳過來的,并且要求該數(shù)據(jù)不可修改,可以使用readOnly來轉(zhuǎn)化該數(shù)據(jù),防止你改動了數(shù)據(jù)而影響別的組件。
到此這篇關(guān)于Vue3中的shallowRef 和shallowReactive的文章就介紹到這了,更多相關(guān)Vue3中shallowRef 和shallowReactive內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue菜單欄聯(lián)動內(nèi)容頁面tab的實現(xiàn)示例
本文主要介紹了vue菜單欄聯(lián)動內(nèi)容頁面tab的實現(xiàn)示例,左側(cè)菜單欄與右側(cè)內(nèi)容部分聯(lián)動,當點擊左側(cè)的菜單,右側(cè)會展示對應(yīng)的tab,具有一定的參考價值,感興趣的可以了解一下2024-01-01
Vue3?Watch踩坑實戰(zhàn)之watch監(jiān)聽無效
Vue.js中的watch選項用于監(jiān)聽Vue實例上某個特定的數(shù)據(jù)變化,下面這篇文章主要給大家介紹了關(guān)于Vue3?Watch踩坑實戰(zhàn)之watch監(jiān)聽無效的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-05-05

