vuejs在解析时出现闪烁的原因及防止闪烁的方法


Posted in Javascript onSeptember 19, 2016

原因:

在使用vuejs、angularjs开发时,经常会遇见在如Chrome这类能够快速解析的浏览器上出现表达式({{ express }} ),或者是模块(div)的闪烁。对于这个问题由于JavaScript去操作DOM,都会等待DOM加载完成(DOM ready)。对于vuejs、angularjs这些会在DOM ready完会才回去解析html view Template,所以对于Chrome这类快速的浏览器你会看见有闪烁的情况出现。而对于IE7,8这类解析稍慢的浏览器大部分情况下是不会出现这个问题的。

解决方法:

在vuejs、angularjs中为我们提供了v-cloak、ng-cloak来实现防止闪烁的方案,同时对于bing文字({{ express }} )我们也可以改为v-bind、ng-bind来实现避免。

下面以vuejs为例:

#v-cloak

用法:

这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。

示例:

[v-cloak] {
display: none;
} 
<div v-cloak>
{{ message }}
</div>

<div> 不会显示,直到编译结束。

原理:

带有v-clock的的元素设置为display:none,隐藏掉,在等到vue解析到带有v-clock的节点时候,会把attribute和class同时remove掉,这样就可以实现防止节点的闪烁。

实例:

//example1:
<span>{{price}}</span>
//example2: 
<span v-bind="price"></span>
//example3: 
<span v-cloak>{{price}}</span>

上例子2和例子3实现的效果是一样的,而例子1在vuejs解析{{price}}之前,用户是可以看到"{{price}}"这个字符串的。而例子2和例子3不会有这种闪烁的情况。

以上所述是小编给大家介绍的vuejs在解析时出现闪烁的原因及防止闪烁的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js操作输入框提示信息且响应鼠标事件
Mar 25 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
理解javascript中的MVC模式
Jan 28 Javascript
JS实现间歇滚动的运动效果实例
Dec 22 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
Apr 20 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
vue弹出框组件封装实例代码
Oct 31 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
Apr 26 Javascript
Element-ui upload上传文件限制的解决方法
Jan 22 Javascript
微信小程序实现聊天室功能
Jun 14 Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 #Javascript
详解Node.Js如何处理post数据
Sep 19 #Javascript
React Native实现简单的登录功能(推荐)
Sep 19 #Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
Sep 19 #Javascript
BootStrap入门教程(二)之固定的内置样式
Sep 19 #Javascript
BootStrap入门教程(一)之可视化布局
Sep 19 #Javascript
Node.js的基本知识简单汇总
Sep 19 #Javascript
You might like
ThinkPHP之R方法实例详解
2014/06/20 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
python实现图片批量剪切示例
2014/03/25 Python
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
python生成器用法实例详解
2019/11/22 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
学生学习总结的自我评价
2013/10/22 职场文书
教育科研先进个人材料
2014/01/26 职场文书
机关作风建设心得体会
2014/10/22 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
黄山导游词
2015/01/31 职场文书
淮海战役观后感
2015/06/11 职场文书