vue3中reactive數(shù)據(jù)被重新賦值后無法雙向綁定的解決
reactive數(shù)據(jù)被重新賦值后無法雙向綁定
這是因?yàn)閞eactive數(shù)據(jù)被重新賦值后,原來數(shù)據(jù)的代理函數(shù)和最新的代理函數(shù)不是同一個,無法被觸發(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)在,沒必要把數(shù)據(jù)寫到data里面,或者是寫一個setup函數(shù),再進(jìn)行return出去。
import進(jìn)來的組件,可以直接在頁面中使用,不再需要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()這個函數(shù)使得我們的變量擁有了雙向綁定屬性
使用步驟:
1、引入ref
2、給變量附初始值,ref(1)
3、 重點(diǎn)?。。∽兞康闹狄?.value來獲取 ,例如a,a.value
三、reactive()函數(shù)
這也是和ref一樣使得我們的變量擁有了雙向綁定屬性, 這個函數(shù)接收一個對象作為參數(shù)
使用步驟:
1、引入ref
2、 重點(diǎn)?。?!給變量附初始值,reactive({value:1}) 接收對象作為參數(shù)的時候,應(yīng)該這樣寫
打印一個對象或者是數(shù)組,根據(jù)控制臺輸出, 可以看到 變量是一個Proxy掛鉤, 掛在一個target 對象上
3、變量的值要用 .value來獲取 ,例如a,a.value
來一個通俗易懂的示例:
//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"; //如果說需要用ref定義一個變量,如下: //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>
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計(jì)
這篇文章主要為大家介紹了vue實(shí)現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計(jì)思路詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08vue3+vite+antd如何實(shí)現(xiàn)自定義主題
這篇文章主要介紹了vue3+vite+antd如何實(shí)現(xiàn)自定義主題問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03手把手教你如何創(chuàng)建一個VUE項(xiàng)目(超簡單)
這篇文章主要給大家介紹了關(guān)于如何創(chuàng)建一個VUE項(xiàng)目的相關(guān)資料,創(chuàng)建vue項(xiàng)目有很多種方式,這里給大家介紹一種非常簡單的方法,需要的朋友可以參考下2023-08-08