在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ vue如何監(jiān)聽(tīng)符合v-if條件的dom元素渲染完畢

vue如何監(jiān)聽(tīng)符合v-if條件的dom元素渲染完畢

vue如何監(jiān)聽(tīng)符合v-if條件的dom元素渲染完畢,然后才進(jìn)行后續(xù)的操作,如果不監(jiān)聽(tīng)拿不到符合條件的dom元素

回答
編輯回答
柒喵

在 v-if 后面的條件發(fā)生變化時(shí)調(diào)用 nextTick 設(shè)置回調(diào)函數(shù)即可。
比如:

<template>
    <div v-if="isDisplay">Example</div>
</template>

<script>
    export default {
        data() {
            return {
                isDisplay: false
            }
        },
        mounted() {
            this.$http({
                method: 'GET'
                url: 'api.test.com'
            }).then(res => {
                // 更新數(shù)據(jù)
                this.isDisplay = res.data.isDisplay;
                // 此時(shí) DOM 還沒(méi)有更新,設(shè)置回調(diào)函數(shù)
                this.$nextTick(function () {
                    // 此時(shí)已經(jīng)渲染完成
                });
            });
        }
    }
</script>
2017年6月3日 03:23
編輯回答
嫑吢丕
<template>
    <div v-if="isDisplay" @hook="mounted"="handleChildMounted">Example</div>
</template>

注意 mounted 不保證已經(jīng)被渲染, 在 handleChildMounted 中搭配 $nextClick 來(lái)保證子組件渲染結(jié)束.

2018年1月14日 15:20