Forståelse af Actions og Action Creators
Stryg for at vise menuen
Teori
Actions er informationspakker, der beskriver de ændringer, vi ønsker at foretage i staten. Action creators er funktioner, der opretter actions. De indkapsler logikken for at oprette actions og kan genbruges i hele applikationen.
Praksis
Vi har en fil ved navn counterAction.js i mappen 'actions'. Denne fil definerer actions og action creators til tællerfunktionaliteten.
import { createAction } from "@reduxjs/toolkit";
export const increment = createAction("counter/increment");
export const decrement = createAction("counter/decrement");
Kodeforklaring:
- Linje 1: Importerer funktionen
createActionfra pakken@reduxjs/toolkit. Denne funktion forenkler oprettelsen af action creators; - Linje 3: Opretter action creator-funktionen
incrementved hjælp afcreateAction. Denne funktion genererer actions til at øge tælleren;- Strengen
"counter/increment", der gives som argument, repræsenterer action-typen. Den hjælper med at identificere actionen, når den bliver dispatcheret.
- Strengen
- Linje 4: På samme måde oprettes action creator-funktionen
decrementved hjælp afcreateAction. Denne funktion genererer actions til at mindske tælleren.- Strengen
"counter/decrement"repræsenterer action-typen for at mindske.
- Strengen
Ved at bruge createAction genererer disse funktioner action-objekter med en type-egenskab sat til den angivne typestreng. Disse actions kan dispatches i Redux-reducere eller React-komponenter for at opdatere Redux store.
Bemærk
Action type-strenge, såsom
"counter/increment"og"counter/decrement", bør være beskrivende og afspejle formålet med handlingen. Det er almindeligt at tilføje feature- eller slice-navnet som præfiks til action typen for bedre organisering. Brug af strengkonstanter eller variabler anbefales for konsistens og nemmere refaktorering.
1. Hvad er action creators i Redux?
2. Hvad repræsenterer strengen "counter/increment" i koden?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat