解决vue解析出现闪烁

Posted 心悦诚服555

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决vue解析出现闪烁相关的知识,希望对你有一定的参考价值。

原因: 
在使用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来实现避免。
例:
#v-cloak
用法:这个指令保持在元素上直到关联实例结束编译。这个指令可以隐藏未编译的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不会有这种闪烁的情况。

以上是关于解决vue解析出现闪烁的主要内容,如果未能解决你的问题,请参考以下文章

vue -- v-cloak解决刷新或者加载出现闪烁(显示变量)

vue -- v-cloak解决刷新或者加载出现闪烁(显示变量)

vue刷新页面出现闪烁

vue.js页面刷新出现闪烁问题的解决

vue项目解决路由跳转页面闪烁问题(过度动画)

Vue 解决插值表达式闪烁问题