vue3 关于解决路由元信息和v-if刷新页面组件闪烁问题

问题描述

添加meta字段利用v-if=”! r o u t e . m e t a . s h o w N a v “指令时造成闪烁问题 . 解决: v − i f = ” route.meta.showNav“指令时造成闪烁问题.解决:v-if=” route.meta.showNav指令时造成闪烁问题.解决:vif=route.meta.showNav“ ,showNav默认为false,要显示的页面为true。(猜测可能与v-if动态编译有关,编译与获取showNav是同步的?)

解决方法:
 //利用全局守卫统一添加
  if (to.path === '/login') {
    // 如果需要,可以在to.meta中添加或修改字段
   // to.meta.showNav =false
  } else {
    to.meta.showNav =true
  }
	//全局组件
	<div  v-if="$route.meta.showNav">
	<example > </example>
``  </div>
原因试分析(希望有大佬指正):
    <div  v-if="未定义字段undefined">
	<example > </example>
``  </div> 
    此时不能渲染,undefined会被视为false,!undefined则为true。
//----------------------------------------
    当 showNav默认为true时
    <div  v-if="!$route.meta.showNav">
	<example > </example>
``  </div>
   则当页面刷新时发生闪烁。所以猜测动态编译过程中因为同步问题会被视为undefined(或者为空值?)。
   因此选择
    <div  v-if="$route.meta.showNav">
	<example > </example>
``  </div>
   showNav 默认为false , 成功解决。 不知闪烁的具体原理为何,敬请指正。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值