最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3中reactive不能直接賦值的解決方案

 更新時(shí)間:2022年05月25日 09:37:48   作者:前端阿彬  
這篇文章主要介紹了vue3中reactive不能直接賦值的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue3 reactive不能直接賦值

最近比較忙,都沒什么時(shí)間學(xué)習(xí)了。

在vue3里,ref和reacitve都可以定義響應(yīng)式數(shù)據(jù),但是兩者有所不同。在使用reactive定義復(fù)雜結(jié)構(gòu)的響應(yīng)式數(shù)據(jù)時(shí),如果你要對(duì)其賦值,會(huì)丟失其響應(yīng)性。然后賦值是我們經(jīng)常進(jìn)行的操作,那么該怎么解決呢?

方法

1. 改為ref定義

const arr= ref([])
arr.value = [1, 2, 3]

2. push新增數(shù)據(jù)

const arr = reactive([])
arr.push(...[1, 2, 3])

3.再封裝一層數(shù)據(jù)(推薦?。?/p>

const state = reactive({
? arr: []
});
state.arr = [1, 2, 3]

但是這樣的話在html模板里,使用數(shù)據(jù)就得state.arr

所以我們可以用解構(gòu)將它return出來(lái)

但是reactive解構(gòu)出來(lái)的數(shù)據(jù)會(huì)丟失響應(yīng)性

所以再用torefs()方法為它們添加響應(yīng)性

最終為:

const state = reactive({
? arr: []
});
state.arr = [1, 2, 3]
return{
? ...toRefs(state),
}

vue3 reactive賦值不響應(yīng)

看了好多方法,先都存著。

(1)多嵌套一層

setup(props) {
?? ?//a賦值的時(shí)候多套一層對(duì)象值賦到a的屬性a上
? let a=reactive({a:{id:1,name:'小明'}})
??
? Object
? function fn(){
? //改值時(shí)就可以直接給a.a賦值了
? ? a.a={id:2,name:'小黃'}
? ? console.log(a);
? ?
? }
? return {
? ? fn,a
? }
}

(2)使用ref

const data= ref([])?
data.value = [1, 2, 3]

(3)用obeject.assign

?let a=reactive({id:1,name:'小明'})
??
? ?function fn(){
? Object.assign(a,{id:2,name:'大明'})
? ?}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

最新評(píng)論

临泽县| 张北县| 太白县| 宜良县| 郓城县| 云林县| 林甸县| 蓬溪县| 临安市| 南华县| 桂东县| 柳河县| 中方县| 孟村| 嘉荫县| 漳州市| 云霄县| 富宁县| 琼海市| 万盛区| 兰考县| 都安| 朝阳市| 建宁县| 内丘县| 罗江县| 襄汾县| 保靖县| 时尚| 思南县| 芦山县| 武安市| 富顺县| 大同县| 定南县| 嘉黎县| 公安县| 双峰县| 清河县| 鄂州市| 吴堡县|