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中setTimeout的几种使用方法小结
Apr 07 Javascript
JavaScript常用脚本汇总(三)
Mar 04 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
javascript获取重复次数最多的字符
Jul 08 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
判断颜色是否合法的正则表达式(详解)
May 03 Javascript
详解用node.js实现简单的反向代理
Jun 26 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
详解Vue2.0 事件派发与接收
Sep 05 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
Mar 20 Javascript
JS实现面向对象继承的5种方式分析
Jul 21 Javascript
webpack的CSS加载器的使用
Sep 11 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
用mysql内存表来代替php session的类
2009/02/01 PHP
在PHP中使用反射技术的架构插件使用说明
2010/05/18 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
url地址自动加#号问题说明
2010/08/21 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
详解Nodejs mongoose
2018/06/10 NodeJs
jQuery 查找元素操作实例小结
2019/10/02 jQuery
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
Python2与Python3的区别点整理
2019/12/12 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
打架检讨书范文
2015/01/27 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技