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 相关文章推荐
JQuery中each()的使用方法说明
Aug 19 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
Sep 17 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
Feb 19 Javascript
浅谈JS闭包中的循环绑定处理程序
Nov 09 Javascript
那些精彩的JavaScript代码片段
Jan 12 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
Angular @HostBinding()和@HostListener()用法
Mar 05 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
vue中的ref和$refs的使用
Nov 22 Javascript
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
详解Node.js如何处理ES6模块
May 15 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
全国FM电台频率大全 - 7 吉林省
2020/03/11 无线电
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
python里glob模块知识点总结
2021/01/05 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
《音乐之都维也纳》教学反思
2014/04/16 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
会计岗位说明书
2014/07/29 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
离职证明格式样本
2015/06/12 职场文书
部门主管竞聘书
2015/09/15 职场文书
八年级数学教学反思
2016/02/17 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
MySQL窗口函数的具体使用
2021/11/17 MySQL
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python