中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue3中使用reactive時后端有返回數據但dom沒有更新如何解決

發布時間:2023-05-10 16:17:11 來源:億速云 閱讀:345 作者:iii 欄目:開發技術

本篇內容主要講解“Vue3中使用reactive時后端有返回數據但dom沒有更新如何解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Vue3中使用reactive時后端有返回數據但dom沒有更新如何解決”吧!

    使用reactive時,后端有返回數據但dom沒有更新

    問題

    在Vue3的setup中使用reactive更新數據,但是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>

    Vue3中使用reactive時后端有返回數據但dom沒有更新如何解決

    直接使用reactive()一個空數組,改變當前值時,頁面不會自動刷新。

    解決辦法

    使用reactive時,將參數變為一個對象形式,而不是單純的數組。

    Vue3中使用reactive時后端有返回數據但dom沒有更新如何解決

    當改為傳入對象包裹后,頁面正常顯示:

    Vue3中使用reactive時后端有返回數據但dom沒有更新如何解決

    關于vue3中reactive的意義

    在學習Vue3的時候產生疑問:

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

    查詢解決

    在Vue3中,響應式對象是指通過reactive函數轉換而來的對象,它的屬性可以被Vue自動監測,當屬性值發生變化時,Vue會自動更新相關的視圖。這個過程是通過Vue內部實現的響應式系統來完成的。

    響應式對象的意義在于使得開發者可以更加方便地管理和操作數據。當數據被轉換為響應式對象后,我們可以直接修改對象的屬性值,而不需要手動調用Vue的更新函數來更新視圖。這樣可以極大地提高開發效率,讓開發者更加專注于業務邏輯的實現。

    此外,響應式對象還可以與Vue的模板語法、組件等功能無縫銜接,使得我們可以通過組合使用響應式對象和Vue的其他功能,快速開發出高效、可維護的應用程序。

    在這段代碼中,addForm對象被使用reactive函數轉換為一個響應式對象。這意味著當addForm對象的屬性sysPre,diaPre或tem發生變化時,相關的依賴將會自動更新,如綁定在模板中的表單輸入框等。

    到此,相信大家對“Vue3中使用reactive時后端有返回數據但dom沒有更新如何解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    滨海县| 黑河市| 河东区| 醴陵市| 工布江达县| 喀喇沁旗| 元朗区| 扎兰屯市| 上林县| 兴隆县| 大方县| 桐城市| 张家口市| 桂阳县| 诸城市| 交城县| 南召县| 洱源县| 秦安县| 盐山县| 延吉市| 博野县| 女性| 承德市| 平果县| 崇阳县| 乌什县| 阳城县| 湾仔区| 蕉岭县| 济南市| 贵溪市| 略阳县| 霍邱县| 萨迦县| 武穴市| 尚志市| 黄平县| 吴桥县| 义乌市| 伊通|