Heim > Web-Frontend > View.js > Was ist der Unterschied zwischen v-show und v-if in VueJS?

Was ist der Unterschied zwischen v-show und v-if in VueJS?

青灯夜游
Freigeben: 2023-01-13 00:45:46
Original
5167 Leute haben es durchsucht

Unterschiede: 1. „v-if“ fügt DOM-Elemente dynamisch zum DOM-Baum hinzu, „v-show“ steuert die Sichtbarkeit durch Festlegen des Anzeigestilattributs von DOM-Elementen; Die Kompilierungsbedingungen sind unterschiedlich. 4. Die Umstellungskosten von „v-if“ sind hoch, die anfänglichen Renderingkosten von „v-show“ sind hoch usw.

Was ist der Unterschied zwischen v-show und v-if in VueJS?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Vue-Version 2.9.6, DELL G3-Computer.

Der Unterschied zwischen v-if und v-show

v-if-Direktive und v-show-Direktive können DOMbasierend dynamisch steuern auf dem Wert Das Codeelement wird häufig verwendet v-if und v-show Die Verantwortung Der Zweck der Anweisung besteht darin, als Ausdruck zu fungieren und ein spezielles Verhalten auf DOM anzuwenden, wenn sich der Wert ändert. v-if指令与v-show指令都可以根据值动态控制DOM元素显示隐藏,v-ifv-show属于Vue的内部常用的指令,指令的职责是当表达式的值改变时把某些特殊的行为应用到DOM上。

描述

v-if

v-if指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回truthy值的时候被渲染。

<div v-if="show">show</div>
<div v-else>hide</div>
Nach dem Login kopieren

v-show

v-show指令用法大致一样,不同的是带有v-show指令的元素始终会被渲染并保留在DOM中,v-show只是简单地切换元素的CSS property display

<div v-show="show">show</div>
Nach dem Login kopieren

区别

  • 实现方式: v-if是动态的向DOM树内添加或者删除DOM元素,v-show是通过设置DOM元素的display样式属性控制显隐。

  • 编译过程: v-if切换有一个局部编译卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件,v-show只是简单的基于CSS切换。

  • 编译条件: v-if是惰性的,如果初始条件为假,则什么也不做,只有在条件第一次变为真时才开始局部编译, v-show是在任何条件下都被编译,然后被缓存,而且DOM元素保留。

  • 性能消耗: v-if有更高的切换消耗,v-show有更高的初始渲染消耗。

  • 使用场景: v-if适合条件不太可能改变的情况,v-show

  • Beschreibung

v-if

🎜🎜v-if-Direktive wird verwendet, um einen Teil davon bedingt zu rendern content , dieser Inhalt wird nur gerendert, wenn der Ausdruck der Direktive einen truthy-Wert zurückgibt. 🎜rrreee🎜🎜v-show🎜🎜🎜 Die Verwendung der v-show-Direktive ist ungefähr gleich, der Unterschied besteht darin, dass Elemente mit der v-show-Direktive immer verwendet werden gerendert und beibehalten werden. In DOM schaltet v-show einfach die CSS-Eigenschaftsanzeige des Elements um. 🎜rrreee🎜🎜Unterschied🎜🎜
  • 🎜Implementierung: v - if fügt DOM-Elemente dynamisch zum DOM-Baum hinzu oder löscht sie und v-show legt DOM fest Das display-Stilattribut des -Elements steuert die Sichtbarkeit. 🎜🎜
  • 🎜Kompilierungsprozess: Der v-if-Wechsel hat einen teilweisen Kompilierungs- und Deinstallationsprozess. Während des Wechselprozesses werden interne Ereignis-Listener und Unterkomponenten ordnungsgemäß zerstört und neu erstellt, v -show ist nur ein einfacher Schalter, der auf <code>CSS basiert. 🎜🎜
  • 🎜Kompilierungsbedingungen: v-if ist faul. Wenn die Anfangsbedingung falsch ist, tun Sie nichts und starten Sie die teilweise Kompilierung erst, wenn die Bedingung zum ersten Mal wahr wird, v-show wird unter allen Bedingungen kompiliert und dann zwischengespeichert, und das DOM-Element bleibt erhalten. 🎜🎜
  • 🎜Leistungsverbrauch: v-if hat höhere Wechselkosten und v-show hat höhere anfängliche Renderingkosten. 🎜🎜
  • 🎜Verwendungsszenarien: v-if eignet sich für Situationen, in denen sich die Bedingungen wahrscheinlich nicht ändern, und v-show eignet sich für Situationen, in denen sich die Bedingungen häufig ändern . 🎜🎜🎜🎜Verwandte Empfehlungen: „🎜vue.js Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen v-show und v-if in VueJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage