vue3中reactive數(shù)據(jù)被重新賦值后無(wú)法雙向綁定的解決
reactive數(shù)據(jù)被重新賦值后無(wú)法雙向綁定
這是因?yàn)閞eactive數(shù)據(jù)被重新賦值后,原來(lái)數(shù)據(jù)的代理函數(shù)和最新的代理函數(shù)不是同一個(gè),無(wú)法被觸發(fā)

推薦寫法
import {reactive, toRefs} from 'vue'
setup(props, context) {
const state = reactive({
myMessage:'',
myDialog: '',
myForm: ref(''),
searchValue: ref(''),
searchType: ref(''),
checked: ref(false),
actIndex: reactive({ arr: [0] }),
dialogTableVisible2: ref(false),
dialogTableVisible3: ref(false)
})
return {
...toRefs(state),
}
}vue3數(shù)據(jù)的雙向綁定
一、script setup
現(xiàn)在,沒(méi)必要把數(shù)據(jù)寫到data里面,或者是寫一個(gè)setup函數(shù),再進(jìn)行return出去。
import進(jìn)來(lái)的組件,可以直接在頁(yè)面中使用,不再需要vue2的component或者是setup函數(shù)的return了。
<script setup> import Header from '../home/Header.vue' import Footer from '../home/Footer.vue' </script>
組件中使用:
<template> ?? ?<Header></Header> ?? ?<Footer></Footer> </template>
二、ref() 函數(shù)
ref()這個(gè)函數(shù)使得我們的變量擁有了雙向綁定屬性
使用步驟:
1、引入ref
2、給變量附初始值,ref(1)
3、 重點(diǎn)?。?!變量的值要用 .value來(lái)獲取 ,例如a,a.value
三、reactive()函數(shù)
這也是和ref一樣使得我們的變量擁有了雙向綁定屬性, 這個(gè)函數(shù)接收一個(gè)對(duì)象作為參數(shù)
使用步驟:
1、引入ref
2、 重點(diǎn)?。?!給變量附初始值,reactive({value:1}) 接收對(duì)象作為參數(shù)的時(shí)候,應(yīng)該這樣寫
打印一個(gè)對(duì)象或者是數(shù)組,根據(jù)控制臺(tái)輸出, 可以看到 變量是一個(gè)Proxy掛鉤, 掛在一個(gè)target 對(duì)象上
3、變量的值要用 .value來(lái)獲取 ,例如a,a.value
來(lái)一個(gè)通俗易懂的示例:
//HTML結(jié)構(gòu) <div class="lx-content"> ? ? ? ? ? <div ? ? ? ? ? ? class="lx-img" ? ? ? ? ? ? v-for="(item, i) in lxImges.value" ? ? ? ? ? ? :key="i" ? ? ? ? ? > ?? ? ? ? ? ? ? ?<img :src="item.img" alt="" /> ? ? ? ? ? </div> </div>
<script setup>
import fetch from "../../fetch.js";
import { ref, reactive, onMounted } from "vue";
//如果說(shuō)需要用ref定義一個(gè)變量,如下:
//let data = ref('')
let lxImges = reactive({ value: [],}//重點(diǎn)?。。?!
fetch("abcd", {
? method: "get",
}).then((res) => {
? //console.log(res);
? lxImges.value = res.data;//重點(diǎn)!?。?!
});
</script>以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue3的reactive賦值問(wèn)題解決
- Vue3中reactive變量重新賦值無(wú)法響應(yīng)的3種處理方法
- vue3 reactive定義的引用類型直接賦值導(dǎo)致數(shù)據(jù)失去響應(yīng)式問(wèn)題
- vue3使用reactive賦值后頁(yè)面不改變
- Vue3 reactive響應(yīng)式賦值頁(yè)面不渲染的解決
- vue3中reactive不能直接賦值的解決方案
- 關(guān)于vue3中的reactive賦值問(wèn)題
- vue3中reactive的對(duì)象清空所引發(fā)的問(wèn)題解決方案(清空不了和清空之后再去賦值就賦值不了)
相關(guān)文章
使用vue.js開(kāi)發(fā)時(shí)一些注意事項(xiàng)
使用vue.js進(jìn)行項(xiàng)目的開(kāi)發(fā)已經(jīng)有了一定的時(shí)間,在任務(wù)的過(guò)程中以及和不同的開(kāi)發(fā)使用者交流中,逐漸對(duì)vue.js的使用心得有了一定的積累。本文主要給大家分享一些開(kāi)發(fā)時(shí)需要注意的事項(xiàng)2016-04-04
vue實(shí)現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計(jì)
這篇文章主要為大家介紹了vue實(shí)現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計(jì)思路詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Vue引入Stylus知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給各位整理的是一篇關(guān)于Vue引入Stylus知識(shí)點(diǎn)總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2020-01-01
vue3+vite+antd如何實(shí)現(xiàn)自定義主題
這篇文章主要介紹了vue3+vite+antd如何實(shí)現(xiàn)自定義主題問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
vue3.0實(shí)踐之寫tsx語(yǔ)法實(shí)例
很久不寫博客了,最近在使用ts和tsx開(kāi)發(fā)vue類項(xiàng)目,網(wǎng)上資料比較少,順便記錄一下方便同樣開(kāi)發(fā)的人互相學(xué)習(xí)共同進(jìn)步,下面這篇文章主要給大家介紹了關(guān)于vue3.0實(shí)踐之寫tsx語(yǔ)法的相關(guān)資料,需要的朋友可以參考下2022-07-07
watch里面的deep和immediate作用及說(shuō)明
這篇文章主要介紹了watch里面的deep和immediate作用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
手把手教你如何創(chuàng)建一個(gè)VUE項(xiàng)目(超簡(jiǎn)單)
這篇文章主要給大家介紹了關(guān)于如何創(chuàng)建一個(gè)VUE項(xiàng)目的相關(guān)資料,創(chuàng)建vue項(xiàng)目有很多種方式,這里給大家介紹一種非常簡(jiǎn)單的方法,需要的朋友可以參考下2023-08-08

