Vue Academy · Lektion

Getter und Module

Berechnen Sie abgeleiteten Status und organisieren Sie den Store in Modulen

Lektion 3 von 313 Schritte

Getter und Module ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.

Abgeleiteter Zustand mit Gettern

Manchmal benötigen Sie einen abgeleiteten Zustand, etwa eine gefilterte Liste oder eine Anzahl. Ein Getter entspricht im Store einer berechneten Eigenschaft: Er leitet einen Wert aus dem Zustand ab und speichert das Ergebnis zwischen, bis sich seine Abhängigkeiten ändern.

Einen Getter definieren

Ein Getter ist eine Funktion, die den Zustand erhält und einen abgeleiteten Wert zurückgibt.

getters: {
  completedTodos(state) {
    return state.todos.filter(t => t.done)
  }
}

Getter mit anderen Gettern verwenden

Ein Getter erhält als zweites Argument alle anderen Getter, sodass Sie sie miteinander kombinieren können.

getters: {
  completedTodos(state) {
    return state.todos.filter(t => t.done)
  },
  completedCount(state, getters) {
    return getters.completedTodos.length
  }
}

Auf Getter zugreifen

Lesen Sie Getter über this.$store.getters in einer berechneten Eigenschaft aus.

computed: {
  doneCount() {
    return this.$store.getters.completedCount
  }
}

Getter im Methodenstil

Geben Sie aus einem Getter eine Funktion zurück, um Argumente zu übergeben. Beachten Sie, dass Getter im Methodenstil nicht zwischengespeichert werden und bei jedem Aufruf ausgeführt werden.

getters: {
  todoById: (state) => (id) => {
    return state.todos.find(t => t.id === id)
  }
}

// usage
this.$store.getters.todoById(3)

Der mapGetters-Helper

Wie mapState wandelt der mapGetters-Helper Getter automatisch in berechnete Eigenschaften um.

import { mapGetters } from "vuex"

export default {
  computed: {
    ...mapGetters(["completedTodos", "completedCount"])
  }
}

Warum in Module aufteilen?

Ein einzelner großer Store wird schnell schwer zu warten. Mit Vuex können Sie den Store in Module aufteilen. Jedes Modul hat seinen eigenen Zustand, seine eigenen Mutationen, Actions und Getter, sodass zusammengehörige Logik beieinander bleibt.

Ein Modul definieren

Ein Modul ist einfach ein Objekt mit denselben Optionen wie ein Store. Sie registrieren Module unter dem Schlüssel modules.

const cart = {
  state: () => ({ items: [] }),
  mutations: {
    addItem(state, item) { state.items.push(item) }
  },
  getters: {
    itemCount: (state) => state.items.length
  }
}

Module registrieren

Fassen Sie Module im Root-Store unter modules zusammen. Jeder Schlüssel wird zum Modulnamen.

import { createStore } from "vuex"
import cart from "./modules/cart"
import user from "./modules/user"

export const store = createStore({
  modules: { cart, user }
})

Module mit Namespaces versehen

Setzen Sie namespaced: true, damit ein Modul seinen eigenen Gültigkeitsbereich erhält. Das verhindert Namenskonflikte zwischen Modulen und macht die Struktur eindeutig.

const cart = {
  namespaced: true,
  state: () => ({ items: [] }),
  getters: {
    itemCount: (state) => state.items.length
  }
}

Auf Module mit Namespaces zugreifen

Bei Namespaces stellen Sie beim Committen, Dispatchen oder Auslesen von Gettern den Modulnamen voran.

// module state lives under the module key
this.$store.state.cart.items

// namespaced getter, mutation, action
this.$store.getters["cart/itemCount"]
this.$store.commit("cart/addItem", item)
this.$store.dispatch("cart/checkout")

Kurzer Test

Testen Sie Ihr Wissen über Getter und Module.

Zusammenfassung

Getter leiten zwischengespeicherte Werte aus dem Zustand ab und werden über this.$store.getters oder mapGetters aufgerufen. Module teilen einen großen Store in überschaubare Einheiten auf. Mit namespaced: true erhalten sie einen eigenen Gültigkeitsbereich, sodass Sie ihre Bestandteile über ein Präfix im Format module/name ansprechen. Damit verfügen Sie nun über das vollständige Vuex-Werkzeugset: Zustand, Mutationen, Actions, Getter und Module.

Kostenlos starten

Lerne HTML mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
42
Lektionen
156

Häufig gestellte Fragen

Ist die Lektion „Getter und Module“ kostenlos?

Ja — der vollständige Text von „Getter und Module“ 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 „Getter und Module“?

Berechnen Sie abgeleiteten Status und organisieren Sie den Store in Modulen 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 3 von 3.

Wie lange dauert die Lektion „Getter und Module“?

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. Vuex-Grundlagen
  2. Mutations und Actions
  3. Getter und Module
← Zurück zu Vue Academy