Heim  >  Artikel  >  Web-Frontend  >  Verhindern Sie, dass Vuejs während des Parsens flackern

Verhindern Sie, dass Vuejs während des Parsens flackern

WBOY
WBOYOriginal
2016-09-20 03:30:031457Durchsuche

---## Verhindern Sie, dass Vuejs während des Parsens flackern ##

Grund:
Bei der Entwicklung mit VueJS und AngularJS stoßen Sie häufig auf Ausdrücke ({{ express }}) oder Module (div), die in Browsern wie Chrome angezeigt werden, die schnell analysieren können. Bei diesem Problem wartet JavaScript beim Betrieb von DOM darauf, dass der DOM-Ladevorgang abgeschlossen ist (DOM bereit). Bei VueJS und AngularJS analysieren sie erneut die HTML-Ansichtsvorlage, nachdem das DOM bereit ist. Bei schnellen Browsern wie Chrome ist daher ein Flackern zu beobachten. Bei Browsern wie IE7 und 8 mit etwas langsamerer Analyse tritt dieses Problem in den meisten Fällen nicht auf.

Lösung:
V-Cloak und NG-Cloak werden für uns in VueJS und AngularJS bereitgestellt, um Flackern zu verhindern. Gleichzeitig können wir auch den Bing-Text ändern ({{ Express }}) Implementiert für v-bind, ng-bind zu vermeiden.

Im Folgenden wird Vuejs als Beispiel genommen:

<code>#v-cloak
用法:

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

示例:</code>
<span style="color: #008080;">1</span> <span style="color: #800000;">[v-cloak] </span>{
<span style="color: #008080;">2</span> <span style="color: #ff0000;">  display</span>:<span style="color: #0000ff;"> none</span>;
<span style="color: #008080;">3</span> }
<span style="color: #008080;">4</span> 
<span style="color: #008080;">5</span> <span style="color: #800000;"><div v-cloak>
</span><span style="color: #008080;">6</span>   {<span style="color: #ff0000;">{ message </span>}<span style="color: #800000;">}
</span><span style="color: #008080;">7</span> <span style="color: #800000;"></div></span>

<code><div> 不会显示,直到编译结束。

原理:

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


实例:</code>
<span style="color: #000000;">//example1:
</span><span style="color: #0000ff;"><</span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>{{price}}<span style="color: #0000ff;"></</span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span><span style="color: #000000;">

//example2: 
</span><span style="color: #0000ff;"><</span><span style="color: #800000;">span </span><span style="color: #ff0000;">v-bind</span><span style="color: #0000ff;">="price"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span><span style="color: #000000;">

//example3: 
</span><span style="color: #0000ff;"><</span><span style="color: #800000;">span </span><span style="color: #ff0000;">v-cloak</span><span style="color: #0000ff;">></span>{{price}}<span style="color: #0000ff;"></</span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>
<code>
上例子2和例子3实现的效果是一样的,而例子1在vuejs解析{{price}}之前,用户是可以看到"{{price}}"这个字符串的。而例子2和例子3不会有这种闪烁的情况。</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:圣杯布局 双飞翼布局Nächster Artikel:Html语义化理解