vuejs在解析时出现闪烁的原因及防止闪烁的方法

前端之家收集整理的这篇文章主要介绍了vuejs在解析时出现闪烁的原因及防止闪烁的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_4030@

原因:


@H
403_0@在使用vuejs、angularjs开发时,经常会遇见在如Chrome这类能够快速解析的浏览器上出现表达式({{ express }} ),或者是模块(div)的闪烁。对于这个问题由于JavaScript去操作DOM,都会等待DOM加载完成(DOM ready)。对于vuejs、angularjs这些会在DOM ready完会才回去解析html view Template,所以对于Chrome这类快速的浏览器你会看见有闪烁的情况出现。而对于IE7,8这类解析稍慢的浏览器大部分情况下是不会出现这个问题的。

@H_403_0@

解决方法

@H_403_0@在vuejs、angularjs中为我们提供了v-cloak、ng-cloak来实现防止闪烁的方案,同时对于bing文字({{ express }} )我们也可以改为v-bind、ng-bind来实现避免。

@H_403_0@

下面以vuejs为例:

@H_403_0@#v-cloak

@H_403_0@

用法

@H_403_0@这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。

@H_403_0@

示例:

{{ message }}
@H_403_0@
不会显示,直到编译结束。

@H_403_0@

原理:

@H_403_0@带有v-clock的的元素设置为display:none,隐藏掉,在等到vue解析到带有v-clock的节点时候,会把attribute和class同时remove掉,这样就可以实现防止节点的闪烁。

@H_403_0@

实例:

{{price}} //example2: //example3: {{price}}
@H_403_0@上例子2和例子3实现的效果是一样的,而例子1在vuejs解析{{price}}之前,用户是可以看到"{{price}}"这个字符串的。而例子2和例子3不会有这种闪烁的情况。

@H_403_0@以上所述是小编给大家介绍的vuejs在解析时出现闪烁的原因及防止闪烁的方法。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

原文链接:https://www.f2er.com/vue/45739.html

猜你在找的Vue相关文章