Kursinhalt
Redux Toolkit & React
Redux Toolkit & React
Aktionen und Action Creators
Theorie
Aktionen sind Nutzlasten von Informationen, die die Änderungen beschreiben, die wir am Zustand vornehmen möchten. Aktions-Ersteller sind Funktionen, die Aktionen erstellen. Sie kapseln die Logik der Erstellung von Aktionen und können in der gesamten App wiederverwendet werden.
Übung
Wir haben eine Datei namens counterAction.js
im Ordner 'actions'. Diese Datei definiert Aktionen und Aktions-Ersteller für die Zählerfunktionalität.
Code-Erklärung:
- Zeile 1: Importiere die Funktion
createAction
aus dem Paket@reduxjs/toolkit
. Diese Funktion vereinfacht die Erstellung von Aktions-Erstellern; - Zeile 3: Erstelle die Aktions-Ersteller-Funktion
increment
mitcreateAction
. Diese Funktion generiert Aktionen zum Erhöhen des Zählers;- Der als Argument angegebene String
"counter/increment"
repräsentiert den Aktionstyp. Er hilft, die Aktion zu identifizieren, wenn sie ausgelöst wird.
- Der als Argument angegebene String
- Zeile 4: Erstelle auf ähnliche Weise die Aktions-Ersteller-Funktion
decrement
mitcreateAction
. Diese Funktion generiert Aktionen zum Verringern des Zählers.- Der String
"counter/decrement"
repräsentiert den Aktionstyp für das Verringern.
- Der String
Durch die Verwendung von createAction
generieren diese Funktionen Aktionsobjekte mit einer type
-Eigenschaft, die auf den angegebenen Typ-String gesetzt ist. Diese Aktionen können in Redux-Reduzierern oder React-Komponenten ausgelöst werden, um den Redux-Store zu aktualisieren.
Hinweis
Aktions-Typ-Strings, wie
"counter/increment"
und"counter/decrement"
, sollten beschreibend sein und den Zweck der Aktion widerspiegeln. Es ist üblich, den Aktionstyp mit dem Feature- oder Slice-Namen zu präfixen, um eine bessere Organisation zu gewährleisten. Die Verwendung von String-Konstanten oder Variablen wird für Konsistenz und einfachere Umstrukturierung empfohlen.
1. Was sind Action Creators in Redux?
2. Was repräsentiert der String "counter/increment"
im Code?
Danke für Ihr Feedback!