Heim  >  Artikel  >  Web-Frontend  >  So gehen Sie mit dem Fehler „[Vue-Warnung]: Ein oder mehrere wurden verworfen“ um

So gehen Sie mit dem Fehler „[Vue-Warnung]: Ein oder mehrere wurden verworfen“ um

王林
王林Original
2023-08-18 10:27:30622Durchsuche

如何处理“[Vue warn]: Discarded one or more”错误

So gehen Sie mit dem Fehler „[Vue-Warnung]: Ein oder mehrere verworfen“ um

Während des Entwicklungsprozesses mit Vue.js können einige Warnmeldungen auftreten. Eine der häufigsten Warnungen ist „[Vue-Warnung]“ : Eines oder mehrere verworfen". Diese Warnung erscheint normalerweise, wenn eine Komponente die Direktive v-if oder v-show verwendet, was bedeutet, dass Vue.js bestimmte Elemente während des Rendervorgangs verworfen hat. In diesem Artikel wird die Ursache dieser Warnung und der Umgang damit erläutert.

Normalerweise gibt es zwei Gründe für Warnungen:

  1. Bedingung nicht erfüllt: Wenn die Bedingungen der v-if- oder v-show-Anweisung nicht erfüllt sind, entfernt Vue das Element aus dem DOM. Wenn die Bedingung erneut erfüllt ist, rendert Vue das Element erneut. Wenn Vue während dieses Vorgangs feststellt, dass für das Element eine Status- oder Ereignisbindung vorliegt, wird diese Warnung ausgegeben.
  2. Unterkomponente ist zerstört: Die Warnung kann auch erscheinen, wenn eine Unterkomponente zerstört ist. Wenn in der Unterkomponente einige asynchrone Vorgänge oder Code mit verzögerter Ausführung vorhanden sind, werden diese Codes möglicherweise weiterhin ausgeführt, wenn die Unterkomponente zerstört wird. Wenn diese Codes die Status- oder Ereignisbindung der Vue-Instanz verwenden, wird eine Warnung angezeigt.

Um diese Warnung zu lösen, können wir die folgenden Methoden anwenden:

  1. Verwenden Sie v-if anstelle von v-show: Wenn die Bedingungen nicht erfüllt sind, verwenden Sie v-if anstelle von v-show, um die Warnung zu vermeiden . v-if rendert das Element, wenn die Bedingung erfüllt ist, und entfernt es vollständig aus dem DOM, wenn die Bedingung nicht erfüllt ist. Der Nachteil besteht darin, dass es bei häufigem Wechseln der Bedingungen zu Leistungsproblemen kommen kann.
  2. Verwenden Sie das Schlüsselattribut: In der v-for-Direktive kann die Verwendung des Schlüsselattributs Vue dabei helfen, den Status jedes Elements genau zu verfolgen. Wenn sich die Bedingungen ändern, rendert Vue auf diese Weise die entsprechenden Elemente neu, anstatt sie neu zu erstellen.
<template>
  <div>
    <div v-for="item in items" :key="item.id">{{ item.name }}</div>
  </div>
</template>
  1. Asynchrone Vorgänge abbrechen, wenn die Komponente zerstört wird: Wenn die untergeordnete Komponente zerstört wird, können wir die Hook-Funktion beforeDestroy von Vue verwenden, um mögliche asynchrone Vorgänge abzubrechen oder Ereignisbindungen zu bereinigen.
export default {
  beforeDestroy() {
    // 取消定时器
    clearTimeout(this.timer);
    // 取消事件监听
    window.removeEventListener('resize', this.handleResize);
  },
  created() {
    // 异步操作
    this.timer = setTimeout(() => {
      // do something
    }, 1000);
    // 事件监听
    window.addEventListener('resize', this.handleResize);
  }
}
  1. Verwenden Sie die Methode $destroy von Vue, um untergeordnete Komponenten zu zerstören: Wenn die untergeordnete Komponente beim Zerstören wirklich einige Bereinigungsvorgänge durchführen muss, können wir die Methode $destroy in der übergeordneten Komponente manuell aufrufen, um die untergeordnete Komponente zu zerstören. Dadurch wird die Hook-Funktion beforeDestroy der untergeordneten Komponente ausgelöst und die untergeordnete Komponente aus dem DOM entfernt.
export default {
  methods: {
    destroyChildComponent() {
      this.$refs.childComponent.$destroy();
    }
  }
}

Zusammenfassend lässt sich sagen, dass der Schlüssel zum Umgang mit dem Fehler „[Vue warn]: Ein oder mehrere wurden verworfen“ darin besteht, die Ursache der Warnung zu verstehen und geeignete Schritte zu deren Behebung zu unternehmen. Wir können v-if anstelle von v-show verwenden, um Warnungen zu vermeiden, wenn Bedingungen nicht erfüllt sind, Schlüsselattribute verwenden, um den Status von Elementen zu verfolgen, asynchrone Vorgänge abzubrechen und Ereignisbindungen zu bereinigen, und die Methode $destroy manuell aufzurufen, um untergeordnete Komponenten zu zerstören . Durch diese Methoden können wir die Leistung der Anwendung verbessern und diese Warnung vermeiden.

Ich hoffe, dieser Artikel kann Ihnen dabei helfen, mit dem Fehler „[Vue-Warnung]: Ein oder mehrere verworfen“ umzugehen und Vue.js besser zum Entwickeln von Anwendungen zu verwenden.

Das obige ist der detaillierte Inhalt vonSo gehen Sie mit dem Fehler „[Vue-Warnung]: Ein oder mehrere wurden verworfen“ um. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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