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


Posted in Javascript onOctober 12, 2018

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

1.闪现的原因

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

2.解决的办法

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

  • 选择在JS执行前要隐藏的元素
  • 添加display:none样式

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

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

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

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

到这里,这个问题就解决了。Vue是前端技术的一次大的跃进,有坑并不可怕,相信办法总比问题多。

总结

以上所述是小编给大家介绍的Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
一个js写的日历(代码部分网摘)
Sep 20 Javascript
jQuery入门第一课 jQuery选择符
Mar 14 Javascript
JavaScript 面向对象编程(2) 定义类
May 18 Javascript
THREE.JS入门教程(3)着色器-下
Jan 24 Javascript
JQuery onload、ready概念介绍及使用方法
Apr 27 Javascript
jQuery设置与获取HTML,文本和值的简单实例
Feb 26 Javascript
原生javascript获取元素样式
Dec 31 Javascript
jQuery仿天猫实现超炫的加入购物车
May 04 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
Dec 12 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 Javascript
判断“命令按钮”是否被鼠标单击详解
Jul 31 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
Oct 12 #Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
Oct 12 #Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
Oct 12 #Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
Oct 12 #Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
Oct 12 #Javascript
在JS循环中使用async/await的方法
Oct 12 #Javascript
代码实例ajax实现点击加载更多数据图片
Oct 12 #Javascript
You might like
cmd下运行php脚本
2008/11/25 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
Python中使用动态变量名的方法
2014/05/06 Python
python中对list去重的多种方法
2014/09/18 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
怎样写好自荐信和推荐信
2013/12/26 职场文书
政府门卫岗位职责
2014/04/29 职场文书
机关搬迁方案
2014/05/18 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
师范生求职自荐信
2014/06/14 职场文书
辩论会主持词
2015/07/03 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
初中生活随笔
2015/08/15 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python