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----文件操作
Jan 18 Javascript
jQuery EasyUI API 中文文档 - Panel面板
Sep 30 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
Jun 21 Javascript
纯javascript模仿微信打飞机小游戏
Aug 20 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
JavaScript之生成器_动力节点Java学院整理
Jun 30 Javascript
基于bootstrop常用类总结(推荐)
Sep 11 Javascript
vue实现与安卓、IOS交互的方法
Nov 02 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
Apr 25 Javascript
js判断密码强度的方法
Mar 18 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 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
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
jQuery中extend函数简单用法示例
2017/10/11 jQuery
原生js封装添加class,删除class的实例
2017/11/06 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
python逆向入门教程
2018/01/15 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
python实现控制COM口的示例
2019/07/03 Python
Django多数据库的实现过程详解
2019/08/01 Python
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
数组越界问题
2015/10/21 面试题
挂职思想汇报
2013/12/31 职场文书
区三好学生主要事迹
2014/01/30 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
2014年财政局工作总结
2014/12/09 职场文书
奖金申请报告模板
2015/05/15 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
java设计模式--三种工厂模式详解
2021/07/21 Java/Android