使用v-if或v-show加载页面时出现闪烁

在Vue中遇到使用v-if判断元素显示时的闪烁问题,通过将条件判断改为数据属性并配合mounted生命周期钩子函数实现条件的快速判断,从而避免闪烁现象。文章详细介绍了如何创建一个布尔变量,并在组件挂载后立即更新该变量,以确保元素的正确显示。
摘要由CSDN通过智能技术生成

我是使用v-if判断是否加载一个下拉菜单的选项:

<el-menu-item index="2" v-if="this.name=='root'" >

然后在页面加载及页面刷新时,在不符合条件的情况下,这个选项会出现然后消失,就是闪烁的出现一下。

然后我查找的很多办法,比如使用v-cloak,但是都不行。

之后我思考会不会是因为要判断this.name=='root'这个条件的原因,导致先显示后来才消失,于是我新建一个boolean变量,默认为false。

data(){
    return{
        boolean: false,
        name: '',
    };
},

然后把开始的判断改为<el-menu-item index="2" v-if="boolean" >

再写一个函数:

getBoolean(){

        if(this.name == 'root'){

                this.boolean=true;

        }else{

                this.boolean=false;

        }

然后在mounted中调用函数(可以去了解一下mounted)

mounted:function(){
    this.getBoolean();
},

这样v-if的判断条件很快就可以得到了,就不会出现闪烁的问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值