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 禁用只读文本框获得焦点时的退格键
Apr 25 Javascript
深入理解Javascript闭包 新手版
Dec 28 Javascript
Node.js开发指南中的简单实例(mysql版)
Sep 17 Javascript
纯JS实现本地图片预览的方法
Jul 31 Javascript
封装属于自己的JS组件
Jan 27 Javascript
bootstrap table 多选框分页保留示例代码
Mar 08 Javascript
js事件委托和事件代理案例分享
Jul 25 Javascript
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
JavaScript中的回调函数实例讲解
Jan 27 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
May 07 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
Aug 10 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
zend api扩展的php对象的autoload工具
2011/04/18 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
教师党员公开承诺书
2014/03/25 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电