0Pricing
Vue Academy · Lektion

Lifecycle-Hooks und Datenabruf

Rufen Sie Daten zum passenden Zeitpunkt im Lebenszyklus der Komponente ab

Lifecycle-Hooks und Datenabruf ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vue Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vue Academy-Kurs umfasst insgesamt 3 Lektionen.

Wann Daten abgerufen werden

Komponenten haben einen Lebenszyklus: Sie werden erstellt, in das DOM eingefügt, aktualisiert und schließlich entfernt. Wenn Sie wissen, welchen Lifecycle-Hook Sie zum Abrufen von Daten verwenden sollten, bleibt Ihre App reaktionsfähig und korrekt.

Der created-Hook

Der created-Hook wird ausgeführt, nachdem reaktive Daten eingerichtet wurden, aber bevor die Komponente in das DOM eingefügt wird. Er eignet sich gut zum Starten des Datenabrufs, da die Reaktivität bereits funktioniert.

export default {
  data() {
    return { posts: [] }
  },
  created() {
    this.fetchPosts()
  }
}

Der mounted-Hook

Der mounted-Hook wird ausgeführt, nachdem die Komponente in das DOM eingefügt wurde. Verwenden Sie ihn, wenn Ihre Abruflogik Zugriff auf DOM-Elemente oder auf Drittanbieterbibliotheken benötigt, die ein gerendertes Element voraussetzen.

export default {
  mounted() {
    this.fetchPosts()
    // template refs are now available here
  }
}

created vs mounted

Für das reine Abrufen von Daten funktionieren beide Hooks. created wird etwas früher ausgelöst, sodass die Anfrage früher beginnt. Wählen Sie mounted nur, wenn Sie das gerenderte DOM tatsächlich benötigen. Für die meisten API-Aufrufe sind beide geeignet.

onMounted in der Composition API

In der Composition API werden Lifecycle-Hooks als importierte Funktionen innerhalb von setup aufgerufen. Das Gegenstück zu mounted ist onMounted.

import { ref, onMounted } from "vue"
import { api } from "./api"

export default {
  setup() {
    const posts = ref([])
    onMounted(async () => {
      const res = await api.get("/posts")
      posts.value = res.data
    })
    return { posts }
  }
}

Das Muster für den Ladezustand

Netzwerkanfragen benötigen Zeit. Verfolgen Sie ein loading-Flag, damit Sie während des Datenabrufs einen Spinner anzeigen und ihn danach ausblenden können.

data() {
  return {
    posts: [],
    loading: false
  }
}

Den Ladezustand umschalten

Setzen Sie loading vor der Anfrage auf true und danach unabhängig vom Ergebnis wieder auf false.

async fetchPosts() {
  this.loading = true
  try {
    const res = await api.get("/posts")
    this.posts = res.data
  } finally {
    this.loading = false
  }
}

Einen Ladeindikator anzeigen

Verzweigen Sie im Template anhand des Loading-Flags, um während des Datenabrufs einen Spinner oder eine Nachricht anzuzeigen.

<template>
  <p v-if="loading">Loading...</p>
  <ul v-else>
    <li v-for="post in posts" :key="post.id">{{ post.title }}</li>
  </ul>
</template>

Leere Ergebnisse behandeln

Planen Sie immer für eine leere Antwort. Zeigen Sie eine verständliche Nachricht an, wenn die abgerufene Liste keine Elemente enthält.

<ul v-if="posts.length">
  <li v-for="post in posts" :key="post.id">{{ post.title }}</li>
</ul>
<p v-else>No posts found.</p>

Lademuster mit der Composition API

Dasselbe Lademuster lässt sich mit Refs problemlos in die Composition API übertragen.

const posts = ref([])
const loading = ref(false)

async function load() {
  loading.value = true
  try {
    posts.value = (await api.get("/posts")).data
  } finally {
    loading.value = false
  }
}

onMounted(load)

Abgerufene Daten anzeigen

Sobald sich die Daten im reaktiven Zustand befinden, rendert das Template sie automatisch. Kombinieren Sie Lade-, Daten- und Leerzustände für eine rundum überzeugende Benutzererfahrung.

<template>
  <section>
    <p v-if="loading">Loading...</p>
    <ul v-else-if="posts.length">
      <li v-for="p in posts" :key="p.id">{{ p.title }}</li>
    </ul>
    <p v-else>Nothing here yet.</p>
  </section>
</template>

Kurzer Test

Testen Sie Ihr Wissen über Lifecycle-Hooks und das Abrufen von Daten.

Zusammenfassung

Rufen Sie Daten in created oder mounted ab, beziehungsweise in der Composition API mit onMounted. Verfolgen Sie ein loading-Flag mit try/finally, damit die Benutzeroberfläche einen Spinner anzeigen, die Daten darstellen und leere Ergebnisse behandeln kann. Als Nächstes machen Sie diese Anfragen robuster, indem Sie Fehler behandeln und Interceptors verwenden.

Häufig gestellte Fragen

Ist die Lektion „Lifecycle-Hooks und Datenabruf“ kostenlos?

Ja — der vollständige Text von „Lifecycle-Hooks und Datenabruf“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vue Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vue Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Lifecycle-Hooks und Datenabruf“?

Rufen Sie Daten zum passenden Zeitpunkt im Lebenszyklus der Komponente ab Du übst Vue Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Vue Academy zu starten?

Keine Vorkenntnisse erforderlich. Vue Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.

Wie lange dauert die Lektion „Lifecycle-Hooks und Datenabruf“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Vue Academy-Lektion Code schreiben und ausführen?

Ja. Jede Vue Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. HTTP-Anfragen mit Axios
  2. Lifecycle-Hooks und Datenabruf
  3. Fehlerbehandlung und globale Interceptors
← Zurück zu Vue Academy