继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Vue v-if/v-show/插值表达式导致闪现的原因及解决办法

慕村9548890
关注TA
已关注
手记 1298
粉丝 227
获赞 991

在开发过程中经常会发现当页面明明不应该出现的元素或内容会闪现一下然后消失,最近研究了一下这个问题的原因和解决办法,这里和大家分享一下。

1.闪现的原因

这个问题是因为Vue要等到HTML DOM加载完成后才会执行JS的编译,所以对使用的指令如 v-if, v-show 或者使用了插值表达式 {{}} 都会出现闪现的情况。因为在这些判断条件或表达式执行之前,DOM已经渲染出来了,之后Vue才会执行相应的JS代码。

2.解决的办法

其实在了解了原因之后我们就有了大概的思路,既然是在JS执行之前会出现,那就让元素在JS执行之前都保持不显示就好了。那事情就分为两步:

  • 选择在JS执行前要隐藏的元素

  • 添加display:none样式

如何只定位JS执行前的元素呢?Vue有一个指令 v-cloak,它的特殊之处在于保持在元素上直到关联实例结束编译。就是说这个属性会一直在元素上,直到编译结束。只需要在需要隐藏的元素上增加 v-cloak 指令即可。

webp

carbon (3).png

接下来在CSS中定义隐藏样式即可:


webp

image.png



作者:魏永_Owen_Wei
链接:https://www.jianshu.com/p/dddd7d2e44bc


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP