Heim Web-Frontend View.js Detaillierte Erläuterung der Funktion defineAsyncComponent in Vue3: Anwendung asynchroner Ladekomponenten

Detaillierte Erläuterung der Funktion defineAsyncComponent in Vue3: Anwendung asynchroner Ladekomponenten

Jun 18, 2023 pm 07:39 PM
vue defineasynccomponent 异步加载

Detaillierte Erläuterung der Funktion defineAsyncComponent in Vue3: Anwendung des asynchronen Ladens von Komponenten

In Vue3 stoßen wir häufig auf die Notwendigkeit, Komponenten asynchron zu laden. Zu diesem Zeitpunkt können wir die von Vue3 bereitgestellte Funktion defineAsyncComponent verwenden, um die Funktion zum asynchronen Laden von Komponenten zu implementieren. In diesem Artikel werden die Verwendungs- und Anwendungsszenarien der Funktion defineAsyncComponent in Vue3 ausführlich vorgestellt.

1. Definition der Funktion „defineAsyncComponent“

defineAsyncComponent ist eine Funktion in Vue3, die zum asynchronen Laden von Komponenten verwendet wird. Es ist wie folgt definiert:

function defineAsyncComponent(loader) {
  if (__VUE_OPTIONS_API__) {
    return { __asyncLoader: loader, name: 'AsyncComponentWrapper' }
  }

  const AsyncComponent = defineComponent({
    name: 'AsyncComponentWrapper',
    setup() {
      const resolvedComponent = ref(null)
      const error = ref(null)
      const loading = ref(false)

      if (!loader) {
        error.value = new Error(`Error in async component: loader is undefined`)
      } else {
        loading.value = true
        loader().then((component) => {
          resolvedComponent.value = normalizeComponent(component)
        }).catch((err) => {
          error.value = err
        }).finally(() => {
          loading.value = false
        })
      }

      return { resolvedComponent, error, loading }
    },
    render() {
      const { resolvedComponent, error, loading } = this
      if (resolvedComponent) {
        return h(resolvedComponent)
      } else if (error) {
        throw error
      } else if (loading) {
        return h('div', 'Loading...')
      }
    }
  })

  AsyncComponent.__asyncLoader = loader

  return AsyncComponent
}
Nach dem Login kopieren

Wie aus dem Code ersichtlich ist, erfordert die Funktion defineAsyncComponent eine Loader-Funktion als Parameter, die ein Promise und schließlich eine Komponente in der Auflösungsfunktion zurückgeben soll.

2. Verwendung der Funktion „defineAsyncComponent“

Mit der Funktion „defineAsyncComponent“ können wir eine Funktion definieren, die Komponenten asynchron lädt. Beispiel:

import { defineAsyncComponent } from 'vue'

const AsyncComponent = defineAsyncComponent(() => {
  // 通过import函数异步加载组件
  return import('./components/AsyncComponent.vue')
})

export default {
  components: {
    AsyncComponent
  }
}
Nach dem Login kopieren

Im obigen Code verwenden wir zunächst die Funktion defineAsyncComponent, um eine Funktion AsyncComponent zu definieren, die Komponenten asynchron lädt, und verwenden sie als Unterkomponente unserer Komponente und verwenden sie innerhalb der Komponente.

Zusätzlich zur Verwendung der Importfunktion zum asynchronen Laden können wir auch andere asynchrone Lademethoden verwenden, wie zum Beispiel:

const AsyncComponent = defineAsyncComponent(() => {
  // 使用动态import路径异步加载组件
  return import(`./components/${componentName}.vue`)
})
Nach dem Login kopieren

Mit der obigen Methode können wir verschiedene Komponentenpfade dynamisch laden und die Funktion defineAsyncComponent flexibler verwenden.

Bei der Verwendung asynchroner Ladekomponenten müssen wir auf einige Details achten. Im Allgemeinen müssen wir eine Caching-Strategie für asynchron geladene Komponenten definieren, um zu vermeiden, dass dieselbe Komponente wiederholt geladen wird. Wir können die von Vue bereitgestellte keepAlive-Komponente verwenden, um Caching-Strategien zu implementieren. Beispiel:

<template>
  <div>
    <keep-alive>
      <AsyncComponent :key="componentKey" />
    </keep-alive>
    <button @click="changeComponent">Change Component</button>
  </div>
</template>

<script>
import { defineAsyncComponent, ref } from 'vue'

export default {
  setup() {
    const componentKey = ref(0)

    const changeComponent = () => {
      // 每次更改组件的时候更新key,使组件重新渲染
      componentKey.value++
    }

    const AsyncComponent = defineAsyncComponent(() => {
      return import('./components/AsyncComponent.vue')
    })

    return { componentKey, changeComponent, AsyncComponent }
  }
}
</script>
Nach dem Login kopieren

Im obigen Code definieren wir einen Counter-Komponentenschlüssel, um den Schlüsselwert der Komponente zu aktualisieren, wodurch die asynchron geladene Komponente erneut gerendert wird. Wir verpacken die asynchrone Ladekomponente auch in eine Keep-Alive-Komponente, um die Caching-Strategie zu implementieren.

3. Anwendungsszenarien der Funktion defineAsyncComponent

Das asynchrone Laden von Komponenten bietet eine Vielzahl von Anwendungsszenarien, insbesondere in mehrseitigen Anwendungen, bei denen häufig unterschiedliche Seitenkomponenten je nach Benutzeranforderungen dynamisch geladen werden müssen. Darüber hinaus unterstützt Vue3 auch die Verwendung der Funktion defineAsyncComponent zum asynchronen Laden verschiedener anderer Komponenten wie Anweisungen, Plug-Ins, Vorlagen usw.

In Vue3 ist die Funktion defineAsyncComponent zu einer der Standardmethoden zur Implementierung des asynchronen Ladens von Komponenten geworden und ein wichtiger Bestandteil des Vue3-Frameworks. Durch das Erlernen der Verwendungs- und Anwendungsszenarien der Funktion defineAsyncComponent können wir die Essenz des Vue3-Frameworks besser verstehen und es flexibel auf die Projektentwicklung anwenden.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Funktion defineAsyncComponent in Vue3: Anwendung asynchroner Ladekomponenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

Was bedeutet VUE Multi-Page-Entwicklung? Was bedeutet VUE Multi-Page-Entwicklung? Apr 07, 2025 pm 11:57 PM

VUE Multi-Page-Entwicklung ist eine Möglichkeit, Anwendungen mithilfe des Vue.js-Frameworks zu erstellen, in dem die Anwendung in separate Seiten unterteilt ist: Code-Wartung: Die Aufteilung der Anwendung in mehrere Seiten kann das Verwalten und Wartungsbereich erleichtern. Modularität: Jede Seite kann als separates Modul für eine einfache Wiederverwendung und den Austausch verwendet werden. Einfaches Routing: Die Navigation zwischen Seiten kann durch einfache Routing -Konfiguration verwaltet werden. SEO -Optimierung: Jede Seite hat eine eigene URL, die SEO hilft.

So fragen Sie die Version von Vue So fragen Sie die Version von Vue Apr 07, 2025 pm 11:24 PM

Sie können die Vue -Version mit Vue Devtools abfragen, um die Registerkarte VUE in der Konsole des Browsers anzuzeigen. Verwenden Sie NPM, um den Befehl "npm list -g vue" auszuführen. Suchen Sie das Vue -Element im Objekt "Abhängigkeiten" der Datei package.json. Führen Sie für Vue -CLI -Projekte den Befehl "Vue --version" aus. Überprüfen Sie die Versionsinformationen im & lt; Skript & gt; Tag in der HTML -Datei, die sich auf die VUE -Datei bezieht.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

So verwenden Sie Funktionsabfangweserven So verwenden Sie Funktionsabfangweserven Apr 08, 2025 am 06:51 AM

Funktionsabfangen in VUE ist eine Technik, mit der die Häufigkeit, mit der eine Funktion eingerufen wird, innerhalb eines bestimmten Zeitraums aufgerufen wird und Leistungsprobleme verhindern. Die Implementierungsmethode lautet: Importieren Sie die Lodash -Bibliothek: importieren {dunounce} aus 'lodash'; Verwenden Sie die Dabounce -Funktion, um eine Intercept -Funktion zu erstellen: const dabouncedFunction = dunounce (() = & gt; { / logical /}, 500); Rufen Sie die Abfangfunktion auf und die Steuerfunktion wird höchstens einmal in 500 Millisekunden aufgerufen.

See all articles