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 相关文章推荐
通用javascript脚本函数库 方便开发
Oct 13 Javascript
js页面跳转的常用方法整理
Oct 18 Javascript
基于jQuery的checkbox全选问题分析
Nov 18 Javascript
原生js实现可爱糖果数字时间特效
Dec 30 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
js实现动态改变radio状态的方法
Feb 28 Javascript
微信小程序实现自定义加载图标功能
Jul 19 Javascript
解决vue.js 数据渲染成功仍报错的问题
Aug 25 Javascript
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 Javascript
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
微信{"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
第1次亲密接触PHP5(2)
2006/10/09 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
js实现点赞效果
2020/03/16 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Python实现数据库编程方法详解
2015/06/09 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
PyQt 如何创建自定义QWidget
2021/03/24 Python
货代行业个人求职简历的自我评价
2013/10/22 职场文书
公司董事长职责
2013/12/12 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
启动仪式策划方案
2014/06/14 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
开网店计划分析
2019/07/30 职场文书
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL