Heim > Web-Frontend > View.js > Die ultimative Fähigkeit des bedingten Renderns von Vue: Detaillierte Erläuterung der Vor- und Nachteile von v-if, v-show, v-else, v-else-if und Fallanalyse

Die ultimative Fähigkeit des bedingten Renderns von Vue: Detaillierte Erläuterung der Vor- und Nachteile von v-if, v-show, v-else, v-else-if und Fallanalyse

王林
Freigeben: 2023-09-15 08:10:49
Original
815 Leute haben es durchsucht

Die ultimative Fähigkeit des bedingten Renderns von Vue: Detaillierte Erläuterung der Vor- und Nachteile von v-if, v-show, v-else, v-else-if und Fallanalyse

Das Nirvana des bedingten Renderings von Vue: Detaillierte Erläuterung der Vor- und Nachteile von v-if, v-show, v-else, v-else-if und Fallanalyse

Einführung:
Bedingtes Rendering in der Vue-Entwicklung ist sehr wichtig. Eine wichtige Funktion. Vue bietet mehrere häufig verwendete Anweisungen zum Implementieren des bedingten Renderings, darunter v-if, v-show, v-else und v-else-if. Diese Anweisungen können DOM-Elemente dynamisch einfügen oder entfernen, je nachdem, ob ein Ausdruck wahr oder falsch ist. In diesem Artikel werden die Verwendung sowie die Vor- und Nachteile dieser Anweisungen ausführlich erläutert und anhand konkreter Fälle weiter analysiert.

1. v-if-Anweisung
Die v-if-Anweisung ist die am häufigsten verwendete bedingte Rendering-Anweisung in Vue. Es bestimmt, ob ein DOM-Element gerendert werden soll, basierend darauf, ob der Ausdruck wahr oder falsch ist. Wenn der Ausdruck wahr ist, fügt v-if das entsprechende DOM-Element in die Seite ein; wenn der Ausdruck falsch ist, entfernt v-if das entsprechende DOM-Element von der Seite. Das Folgende ist ein Beispiel für die Verwendung der v-if-Direktive:

<template>
  <div>
    <p v-if="show">显示文本</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: true
    }
  }
}
</script>
Nach dem Login kopieren

Wenn show wahr ist, wird das DOM-Element, das den Text anzeigt, gerendert; wenn show falsch ist, wird das DOM-Element entfernt.

Vor- und Nachteile der v-if-Direktive:
Vorteile:

  1. Die v-if-Direktive eignet sich für Elemente, die häufig den Anzeigestatus wechseln müssen. Sie fügt DOM basierend auf dem Wert des Ausdrucks ein und entfernt sie dadurch Leistung. .
  2. Die v-if-Direktive kann mit den v-else- und v-else-if-Direktiven verwendet werden, um eine komplexere bedingte Rendering-Logik zu implementieren.

Nachteile: Die

  1. v-if-Anweisung zerstört und baut das DOM beim Umschalten neu auf und die Leistung ist relativ gering. Wenn es viele Elemente gibt, die ein häufiges Wechseln des Anzeigestatus erfordern, ist die Verwendung der v-if-Anweisung daher nicht geeignet. Sie können die Verwendung der v-show-Anweisung in Betracht ziehen.

2. v-show-Befehl
Der v-show-Befehl ähnelt dem v-if-Befehl. Er kann auch den Anzeigestatus von Elementen basierend auf dem wahren oder falschen Ausdruck ändern. Der Unterschied besteht darin, dass die v-show-Anweisung durch Ändern des Anzeigeattributs des Elements implementiert wird, anstatt DOM-Elemente direkt einzufügen und zu entfernen. Das Folgende ist ein Beispiel für die Verwendung der v-show-Direktive:

<template>
  <div>
    <p v-show="show">显示文本</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: true
    }
  }
}
</script>
Nach dem Login kopieren

Wenn show wahr ist, wird display: block verwendet, um das entsprechende DOM-Element anzuzeigen. Wenn show false ist, wird display: none verwendet Blenden Sie das entsprechende DOM-Element aus.

Vor- und Nachteile des v-show-Befehls:
Vorteile:

  1. Der v-show-Befehl eignet sich für Elemente, die häufig den Anzeigestatus ändern müssen, wodurch die Leistung höher ist .
  2. Der Befehl v-show kann in Verbindung mit dem Befehl v-else verwendet werden, um eine einfache bedingte Rendering-Logik zu implementieren.

Nachteile:

  1. Die v-show-Anweisung unterstützt die v-else-if-Anweisung nicht, daher ist die Verwendung von v-show unter komplexer bedingter Rendering-Logik umständlich.

3. v-else- und v-else-if-Anweisungen
Die v-else- und v-else-if-Anweisungen sind zwei ergänzende Anweisungen im bedingten Rendering. Sie können mit den Anweisungen v-if oder v-show verwendet werden, um eine komplexere bedingte Rendering-Logik zu implementieren. Das Folgende ist ein Beispiel für die Verwendung der Anweisungen v-else und v-else-if:

<template>
  <div>
    <p v-if="score < 60">不及格</p>
    <p v-else-if="score >= 60 && score < 80">及格</p>
    <p v-else>优秀</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      score: 85
    }
  }
}
</script>
Nach dem Login kopieren

In diesem Beispiel werden unterschiedliche Texte entsprechend unterschiedlichen Werten der Punktzahl gerendert. Bei einer Punktzahl unter 60 wird die Note „Nicht bestanden“ vergeben; bei einer Punktzahl größer oder gleich 60 und weniger als 80 wird die Note „Bestanden“ vergeben, in anderen Fällen wird die Note „Ausgezeichnet“ vergeben.

Vor- und Nachteile von v-else- und v-else-if-Anweisungen:
Vorteile:

  1. v-else- und v-else-if-Anweisungen können in Verbindung mit der v-if-Anweisung verwendet werden, um komplexeres bedingtes Rendering zu implementieren Logik, wodurch der Code komplexer wird. Klar und leicht lesbar.

Nachteile:

  1. Die Anweisungen v-else und v-else-if können nur mit der Anweisung v-if und nicht mit der Anweisung v-show verwendet werden.

Fallanalyse:
Das Folgende ist ein konkreter Fall, der die Verwendungsszenarien, Vor- und Nachteile der Anweisungen „v-if“, „v-show“, „v-else“ und „v-else-if“ zeigt:

<template>
  <div>
    <button @click="toggleViewType">切换视图类型</button>
    <div v-if="viewType === 'list'">
      <ul>
        <li v-for="item in list">{{ item }}</li>
      </ul>
    </div>
    <div v-else-if="viewType === 'grid'">
      <div v-for="item in list" class="grid-item">{{ item }}</div>
    </div>
    <div v-else>
      暂无数据
    </div>
    <div v-show="showMoreInfo">
      更多信息
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: ['A', 'B', 'C'],
      viewType: 'list',
      showMoreInfo: true
    }
  },
  methods: {
    toggleViewType() {
      this.viewType = this.viewType === 'list' ? 'grid' : 'list';
    }
  }
}
</script>
Nach dem Login kopieren

In diesem Fall per Click Klicken Sie auf die Schaltfläche, um den Ansichtstyp zu wechseln und verschiedene Datenanzeigemethoden anzuzeigen. Wenn der Ansichtstyp „Liste“ ist, wird eine UL-Liste gerendert. Wenn der Ansichtstyp „Gitter“ ist, wird eine Reihe von Div-Rastern gerendert. Wenn der Ansichtstyp leer ist, wird „Noch keine Daten“ angezeigt. Gleichzeitig können Sie durch Steuern des Werts von showMoreInfo entscheiden, ob „mehr Informationen“ gerendert werden sollen.

Anhand dieses Falles können wir die Flexibilität sowie die Vor- und Nachteile der Verwendung der Anweisungen v-if, v-show, v-else-if und v-else erkennen. In der tatsächlichen Entwicklung können wir geeignete Anweisungen auswählen, um bedingte Rendering-Vorgänge entsprechend bestimmten Situationen durchzuführen.

Zusammenfassung:
Vues bedingte Rendering-Anweisungen v-if, v-show, v-else, v-else-if werden in der Vue-Entwicklung sehr häufig verwendet. Durch ausführliche Erläuterungen und Fallstudien dieser Anleitungen verstehen wir deren Anwendung und ihre Vor- und Nachteile. In der tatsächlichen Entwicklung sollten wir geeignete Anweisungen basierend auf den spezifischen Anforderungen auswählen, um den besten Rendering-Effekt und die beste Benutzererfahrung zu erzielen.

Das obige ist der detaillierte Inhalt vonDie ultimative Fähigkeit des bedingten Renderns von Vue: Detaillierte Erläuterung der Vor- und Nachteile von v-if, v-show, v-else, v-else-if und Fallanalyse. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage