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.ajax)
Nov 19 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
Jul 24 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
Mar 27 Javascript
JQuery实现Ajax加载图片的方法
Dec 24 Javascript
实例讲解js验证表单项是否为空的方法
Jan 09 Javascript
Jquery操作cookie记住用户名
Mar 29 Javascript
Javascript基础知识盲点总结之函数
May 15 Javascript
30分钟快速掌握Bootstrap框架
May 24 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
JS实现动态生成html table表格的方法分析
Jul 11 Javascript
通过jquery的ajax请求本地的json文件方法
Aug 08 jQuery
原生JS实现拖拽功能
Dec 16 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
删除无限级目录与文件代码共享
2006/07/12 PHP
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php 获取完整url地址
2008/12/20 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
javascript中this指向详解
2016/04/23 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
python 实现矩阵按对角线打印
2019/11/29 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
大学生思想汇报范文
2013/12/31 职场文书
认识深刻的检讨书
2014/02/16 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
2014年班组工作总结
2014/11/20 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS
Redis主从复制操作和配置详情
2022/09/23 Redis