Vue創(chuàng)建淺層響應(yīng)式數(shù)據(jù)的實例詳解
shallowReactive:只處理對象第一層數(shù)據(jù)的響應(yīng)式(淺響應(yīng)式)。
shallowRef:只處理基本數(shù)據(jù)類型的響應(yīng)式,不處理對象類型的響應(yīng)式。
shallowReactive 適用于:如果有一個對象類型的數(shù)據(jù),結(jié)構(gòu)比較深,但變化時只是外層屬性會變化。
shallowRef 適用于:如果有一個對象類型的數(shù)據(jù),后續(xù)功能不會修改該對象中的屬性,而是生成新的對象來替換。
只考慮第一層數(shù)據(jù)的響應(yīng)式 shallowReactive 函數(shù):
<template>
<h2>姓名:{{ info.name }}</h2>
<h2>年齡:{{ info.age }}</h2>
<h2>薪資:{{ info.job.money }}</h2>
<button @click="info.name += '風(fēng)'">修改姓名</button>
<button @click="info.age++">修改年齡</button>
<button @click="info.job.money++">增加薪資</button>
</template>
<script>
// 引入 shallowReactive 函數(shù)
import { shallowReactive } from 'vue'
export default {
name: "Home",
setup() {
// 只考慮第一層數(shù)據(jù)的響應(yīng)式
let info = shallowReactive({
name: "張三",
age: 18,
job: {
money: 20
}
})
// 返回數(shù)據(jù)
return { info }
}
}
</script>注:使用 shallowReactive 創(chuàng)建的數(shù)據(jù),只有第一層是響應(yīng)式的,深層數(shù)據(jù)修改后,頁面不會實時更新。

只考慮基本數(shù)據(jù)類型的響應(yīng)式 shallowRef 函數(shù) :
<template>
<h2>數(shù)字:{{ sum }}</h2>
<button @click="sum++">數(shù)據(jù)+1</button>
<hr />
<h2>姓名:{{ info.name }}</h2>
<button @click="info = { name: '李四' }">修改姓名</button>
<hr />
<h2>年齡:{{ user.age }}</h2>
<button @click="user.age++">增加年齡</button>
</template>
<script>
// 引入 shallowRef 函數(shù)
import { shallowRef } from 'vue'
export default {
name: "Home",
setup() {
// 只處理基本數(shù)據(jù)類型的響應(yīng)式
let sum = shallowRef(10);
// 直接替換這個對象時,頁面也會更新
let info = shallowRef({
name: "張三"
})
// 不處理對象類型的響應(yīng)式
let user = shallowRef({
age: 18
})
// 返回數(shù)據(jù)
return { sum, info, user }
}
}
</script>注:使用 shallowRef 創(chuàng)建基礎(chǔ)數(shù)據(jù)類型是響應(yīng)式的,創(chuàng)建對象數(shù)據(jù)類型就不是響應(yīng)式的了。但可以直接替換這個對象,頁面也會實時更新。

到此這篇關(guān)于Vue創(chuàng)建淺層響應(yīng)式數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Vue響應(yīng)式數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Vue-cli3.0創(chuàng)建的項目 如何發(fā)布npm包
這篇文章主要介紹了使用Vue-cli3.0創(chuàng)建的項目,如何發(fā)布npm包,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10
全局安裝 Vue cli3 和 繼續(xù)使用 Vue-cli2.x操作
這篇文章主要介紹了全局安裝 Vue cli3 和 繼續(xù)使用 Vue-cli2.x操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Vue項目pdf(base64)轉(zhuǎn)圖片遇到的問題及解決方法
這篇文章主要介紹了Vue項目pdf(base64)轉(zhuǎn)圖片遇到的問題及解決方法,需要的朋友可以參考下2018-10-10
vue-openlayers實現(xiàn)地圖坐標(biāo)彈框效果
這篇文章主要為大家詳細(xì)介紹了vue-openlayers實現(xiàn)地圖坐標(biāo)彈框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-09-09
解決element-ui el-input賦值后不能編輯的問題
這篇文章主要介紹了解決element-ui el-input賦值后不能編輯的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
詳解vue服務(wù)端渲染瀏覽器端緩存(keep-alive)
在使用服務(wù)器端渲染時,除了服務(wù)端的接口緩存、頁面緩存、組建緩存等,瀏覽器端也避免不了要使用緩存,減少頁面的重繪。這篇文章主要介紹了詳解vue服務(wù)端渲染瀏覽器端緩存(keep-alive),感興趣的小伙伴們可以參考一下2018-10-10

