Într-o aplicație bazată pe Redux, arhitectura se învârte în jurul a trei concepte principale: Redux store, actions și reducers. Să aprofundăm în fiecare dintre aceste concepte și să vedem cum funcționează împreună.
Redux Store
Redux store este o singură sursă de adevăr care deține starea completă a aplicației dvs. Este în esență un obiect JavaScript care conține datele reprezentând întreaga stare a aplicației. Creați funcția store folosind createStore
din biblioteca Redux.
Actions
Actions sunt obiecte JavaScript simple care descriu ceva ce sa întâmplat în aplicație. Acestea au un type
câmp care indică tipul de acțiune efectuată și pot fi incluse și date suplimentare. Actions sunt create folosind creatori de acțiuni, care sunt funcții care returnează obiecte de acțiune. De exemplu:
// Action Types
const ADD_TODO = 'ADD_TODO';
// Action Creator
const addTodo =(text) => {
return {
type: ADD_TODO,
payload: text
};
};
Reducers
Reducers specificați cum se modifică starea aplicației ca răspuns la actions. Un reductor este o funcție pură care ia starea curentă și o acțiune ca argumente și returnează o stare nouă. Reducers sunt combinate într-un singur reductor de rădăcină folosind combineReducers
funcția. Iată un exemplu simplu:
// Reducer
const todosReducer =(state = [], action) => {
switch(action.type) {
case ADD_TODO:
return [...state, action.payload];
default:
return state;
}
};
// Combine Reducers
const rootReducer = combineReducers({
todos: todosReducer,
// ...other reducers
});
Lucrand impreuna
Când trimiteți o acțiune folosind dispatch
funcția, Redux redirecționează acțiunea către toate reducers. Fiecare reductor verifică dacă tipul acțiunii se potrivește cu al său și actualizează partea relevantă a stării în consecință. Starea actualizată este apoi stocată în Redux store și orice componente conectate se redau din nou pe baza noii stări.
Exemplu de scenariu
Imaginați-vă o aplicație pentru lista de lucruri. Când un utilizator adaugă o nouă acțiune, este trimisă o acțiune cu tipul ADD_TODO
și textul tot ca sarcină utilă. Reductorul todos primește această acțiune, adaugă noul todo la stare și returnează starea actualizată.
Concluzie
Înțelegerea modului în care Redux store, actions și reducers interacționează este crucială pentru un management eficient al statului. Această arhitectură asigură o separare clară a preocupărilor și facilitează gestionarea stărilor complexe ale aplicațiilor. Pe măsură ce continuați să vă dezvoltați cu Redux, aceste concepte vor constitui fundamentul strategiei dumneavoastră de management de stat.