Vue創(chuàng)建淺層響應(yīng)式數(shù)據(jù)的實(shí)例詳解
shallowReactive:只處理對(duì)象第一層數(shù)據(jù)的響應(yīng)式(淺響應(yīng)式)。
shallowRef:只處理基本數(shù)據(jù)類型的響應(yīng)式,不處理對(duì)象類型的響應(yīng)式。
shallowReactive 適用于:如果有一個(gè)對(duì)象類型的數(shù)據(jù),結(jié)構(gòu)比較深,但變化時(shí)只是外層屬性會(huì)變化。
shallowRef 適用于:如果有一個(gè)對(duì)象類型的數(shù)據(jù),后續(xù)功能不會(huì)修改該對(duì)象中的屬性,而是生成新的對(duì)象來替換。
只考慮第一層數(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 } }) // 返回?cái)?shù)據(jù) return { info } } } </script>
注:使用 shallowReactive 創(chuàng)建的數(shù)據(jù),只有第一層是響應(yīng)式的,深層數(shù)據(jù)修改后,頁面不會(huì)實(shí)時(shí)更新。
只考慮基本數(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); // 直接替換這個(gè)對(duì)象時(shí),頁面也會(huì)更新 let info = shallowRef({ name: "張三" }) // 不處理對(duì)象類型的響應(yīng)式 let user = shallowRef({ age: 18 }) // 返回?cái)?shù)據(jù) return { sum, info, user } } } </script>
注:使用 shallowRef 創(chuàng)建基礎(chǔ)數(shù)據(jù)類型是響應(yīng)式的,創(chuàng)建對(duì)象數(shù)據(jù)類型就不是響應(yīng)式的了。但可以直接替換這個(gè)對(duì)象,頁面也會(huì)實(shí)時(shí)更新。
到此這篇關(guān)于Vue創(chuàng)建淺層響應(yīng)式數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Vue響應(yīng)式數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue3關(guān)于響應(yīng)式數(shù)據(jù)類型詳解(ref、reactive、toRef、及toRefs)
- vue3中如何使用ref和reactive定義和修改響應(yīng)式數(shù)據(jù)(最新推薦)
- Vue.js響應(yīng)式數(shù)據(jù)的簡單實(shí)現(xiàn)方法(一看就會(huì))
- Vue.js中provide/inject實(shí)現(xiàn)響應(yīng)式數(shù)據(jù)更新的方法示例
- Vue實(shí)現(xiàn)雙向綁定的原理以及響應(yīng)式數(shù)據(jù)的方法
- 談?wù)剬?duì)vue響應(yīng)式數(shù)據(jù)更新的誤解
相關(guān)文章
vue父組件監(jiān)聽子組件數(shù)據(jù)更新方式(hook)
這篇文章主要介紹了vue父組件監(jiān)聽子組件數(shù)據(jù)更新方式(hook),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08使用Vue簡單實(shí)現(xiàn)一個(gè)上拉加載更多分頁組件
上拉加載更多的分頁功能大家應(yīng)該都見過或者使用過了吧,那么有多少同學(xué)自己實(shí)現(xiàn)過嗎,本文我們來簡單實(shí)現(xiàn)一個(gè)上拉加載更多分頁組件吧2024-11-11詳解關(guān)于Vue2.0路由開啟keep-alive時(shí)需要注意的地方
這篇文章主要介紹了關(guān)于Vue2.0路由開啟keep-alive時(shí)需要注意的地方,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09基于Vue.js實(shí)現(xiàn)簡潔的多屏切換效果
在實(shí)際開發(fā)中,多屏切換是常見的需求,尤其是在需要展示大量內(nèi)容或信息時(shí),下面我將向大家展示我是如何實(shí)現(xiàn)三屏,并通過動(dòng)態(tài)按鈕控制切換屏幕的,感興趣的小伙伴跟著小編一起來看看吧2024-09-09vue3的自定義指令directives實(shí)現(xiàn)
本文主要介紹了vue3的自定義指令directives實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07vue使用echarts實(shí)現(xiàn)中國地圖和點(diǎn)擊省份進(jìn)行查看功能
這篇文章主要介紹了vue使用echarts實(shí)現(xiàn)中國地圖和點(diǎn)擊省份進(jìn)行查看功能,本文通過實(shí)例代碼給大家詳細(xì)講解,對(duì)vue echarts 中國地圖相關(guān)知識(shí)感興趣的朋友一起看看吧2022-12-12解決vue中post方式提交數(shù)據(jù)后臺(tái)無法接收的問題
今天小編就為大家分享一篇解決vue中post方式提交數(shù)據(jù)后臺(tái)無法接收的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08Vue中如何實(shí)現(xiàn)在線預(yù)覽word文件、excel文件
這篇文章主要介紹了Vue中如何實(shí)現(xiàn)在線預(yù)覽word文件、excel文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07