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

Vue3中使用reactive時(shí),后端有返回?cái)?shù)據(jù)但dom沒有更新的解決

 更新時(shí)間:2023年03月28日 09:06:20   作者:liguoyuan819  
這篇文章主要介紹了Vue3中使用reactive時(shí),后端有返回?cái)?shù)據(jù)但dom沒有更新的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用reactive時(shí),后端有返回?cái)?shù)據(jù)但dom沒有更新

問題

在Vue3的setup中使用reactive更新數(shù)據(jù),但是dom沒有更新問題

代碼:

<template>
    <div class="aside">
        <div class="collpase-btn" @click="collpaseMenu">
            <el-icon><fold /></el-icon>
        </div>
        <el-menu
            active-text-color="#ffd04b"
            background-color="#545c64"
            class="el-menu-vertical-demo"
            default-active="2"
            text-color="#fff"
            :collapse="store.state.isCollapse"
            @open="handleOpen"
            @close="handleClose"
        >
            <el-sub-menu :index="item.id" v-for="item in menus" :key="item.id">
                <template #title>
                    <el-icon><grid /></el-icon>
                    <span>{{item.title}}</span>
                </template>
                <el-menu-item :index="it.id" v-for="it in item.subMenuList">{{it.title}}</el-menu-item>
            </el-sub-menu>
 
        </el-menu>
    </div>
</template>
<script lang="ts">
import axios from 'axios';
import { defineComponent, onMounted, reactive } from 'vue'
import { useStore } from 'vuex';
 
export default defineComponent({
    name:'Aside',
    setup() {
        const store = useStore();
        const mensList:any = [];
        let menus = reactive(mensList);
        
        const handleOpen = (key: string, keyPath: string[]) => {
 
        }
        const handleClose = (key: string, keyPath: string[]) => {
            
        };
        const collpaseMenu = () => {
            store.dispatch('collpaseChange');
        };
        onMounted(() => {
            axios.get('/user/menu').then(res => {
            menus.mensList = res.data.menusList;
        });
        });
        return {
            handleOpen,
            handleClose,
            collpaseMenu,
            store,
            menus
        }
    },
})
</script>
 
<style lang="scss" scoped>
.el-menu-item.is-active{
    background-color: var(--el-menu-hover-bg-color);;
}
.collpase-btn{
   text-align: center;
    width: 100%;
    padding: 10px 0px;
    cursor: pointer;
    .el-icon{
        color: white;
        font-size: 24px;
    }
}
</style>

直接使用reactive()一個(gè)空數(shù)組,改變當(dāng)前值時(shí),頁(yè)面不會(huì)自動(dòng)刷新。

解決辦法

使用reactive時(shí),將參數(shù)變?yōu)橐粋€(gè)對(duì)象形式,而不是單純的數(shù)組。

當(dāng)改為傳入對(duì)象包裹后,頁(yè)面正常顯示:

關(guān)于vue3中reactive的意義

在學(xué)習(xí)Vue3的時(shí)候產(chǎn)生疑問:

const addForm = reactive({ // 這里面的reactive啥意思
? sysPre: null,
? diaPre: null,
? tem: null
})

查詢解決

在Vue3中,響應(yīng)式對(duì)象是指通過reactive函數(shù)轉(zhuǎn)換而來(lái)的對(duì)象,它的屬性可以被Vue自動(dòng)監(jiān)測(cè),當(dāng)屬性值發(fā)生變化時(shí),Vue會(huì)自動(dòng)更新相關(guān)的視圖。這個(gè)過程是通過Vue內(nèi)部實(shí)現(xiàn)的響應(yīng)式系統(tǒng)來(lái)完成的。

響應(yīng)式對(duì)象的意義在于使得開發(fā)者可以更加方便地管理和操作數(shù)據(jù)。當(dāng)數(shù)據(jù)被轉(zhuǎn)換為響應(yīng)式對(duì)象后,我們可以直接修改對(duì)象的屬性值,而不需要手動(dòng)調(diào)用Vue的更新函數(shù)來(lái)更新視圖。這樣可以極大地提高開發(fā)效率,讓開發(fā)者更加專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。

此外,響應(yīng)式對(duì)象還可以與Vue的模板語(yǔ)法、組件等功能無(wú)縫銜接,使得我們可以通過組合使用響應(yīng)式對(duì)象和Vue的其他功能,快速開發(fā)出高效、可維護(hù)的應(yīng)用程序。

在這段代碼中,addForm對(duì)象被使用reactive函數(shù)轉(zhuǎn)換為一個(gè)響應(yīng)式對(duì)象。這意味著當(dāng)addForm對(duì)象的屬性sysPre,diaPre或tem發(fā)生變化時(shí),相關(guān)的依賴將會(huì)自動(dòng)更新,如綁定在模板中的表單輸入框等。

總結(jié)

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

相關(guān)文章

  • vue項(xiàng)目中向數(shù)組添加元素的3種方式

    vue項(xiàng)目中向數(shù)組添加元素的3種方式

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中向數(shù)組添加元素的3種方式,在Vue中添加元素到數(shù)組非常簡(jiǎn)單,文中通過代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • 一文教你如何優(yōu)雅的控制全局loading的顯示

    一文教你如何優(yōu)雅的控制全局loading的顯示

    在我們的平時(shí)的工作中,在前后端交互的時(shí)候,為了提高頁(yè)面的觀賞性和用戶的體驗(yàn),我們會(huì)在頁(yè)面上添加loading來(lái)阻止用戶操作來(lái)等待接口的返回,這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅的控制全局loading顯示的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • vuex頁(yè)面刷新導(dǎo)致數(shù)據(jù)丟失的解決方案

    vuex頁(yè)面刷新導(dǎo)致數(shù)據(jù)丟失的解決方案

    這篇文章主要介紹了vuex頁(yè)面刷新導(dǎo)致數(shù)據(jù)丟失的解決方案,幫助大家更好的使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • vue本地打開build后生成的dist文件夾index.html問題

    vue本地打開build后生成的dist文件夾index.html問題

    這篇文章主要介紹了vue本地打開build后生成的dist文件夾index.html問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-09-09
  • vue實(shí)現(xiàn)二級(jí)導(dǎo)航欄效果

    vue實(shí)現(xiàn)二級(jí)導(dǎo)航欄效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)二級(jí)導(dǎo)航欄效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Vue3+Elementplus實(shí)現(xiàn)面包屑功能

    Vue3+Elementplus實(shí)現(xiàn)面包屑功能

    這篇文章主要為大家詳細(xì)介紹了Vue3如何結(jié)合Elementplus實(shí)現(xiàn)面包屑功能,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下
    2023-11-11
  • Vue組件通信中非父子組件傳值知識(shí)點(diǎn)總結(jié)

    Vue組件通信中非父子組件傳值知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Vue組件通信中非父子組件傳值知識(shí)點(diǎn)總結(jié),有興趣的朋友們學(xué)習(xí)下。
    2019-12-12
  • Vue EventBus自定義組件事件傳遞

    Vue EventBus自定義組件事件傳遞

    這篇文章主要介紹了Vue EventBus自定義組件事件傳遞,組件化應(yīng)用構(gòu)建是Vue的特點(diǎn)之一,本文主要介紹EventBus進(jìn)行數(shù)據(jù)消息傳遞 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-06-06
  • Vue的自定義組件不能使用click方法的解決

    Vue的自定義組件不能使用click方法的解決

    這篇文章主要介紹了Vue的自定義組件不能使用click方法的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-07-07
  • 詳解解決使用axios發(fā)送json后臺(tái)接收不到的問題

    詳解解決使用axios發(fā)送json后臺(tái)接收不到的問題

    這篇文章主要介紹了詳解解決使用axios發(fā)送json后臺(tái)接收不到的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-06-06

最新評(píng)論

安泽县| 秦安县| 海口市| 西安市| 资源县| 太康县| 东光县| 梁山县| 苏州市| 长汀县| 昌宁县| 中牟县| 仪陇县| 石泉县| 邹城市| 集安市| 东乡| 青浦区| 天等县| 金湖县| 通道| 延安市| 龙门县| 沅陵县| 栾川县| 大宁县| 股票| 乐山市| 图木舒克市| 河池市| 彭山县| 周至县| 盘山县| 万荣县| 平遥县| 安国市| 依兰县| 弥勒县| 剑川县| 交口县| 永康市|