Dans une application basée sur Redux, l'architecture s'articule autour de trois concepts principaux : Redux store, actions, et reducers. Approfondissons chacun de ces concepts et voyons comment ils fonctionnent ensemble.
Redux Store
Le Redux store est une source unique de vérité qui contient l'état complet de votre application. Il s'agit essentiellement d'un objet JavaScript qui contient les données représentant l'ensemble de l'état de l'application. Vous créez le store en utilisant la createStore
fonction de la bibliothèque Redux.
Actions
Actions sont des objets JavaScript simples qui décrivent quelque chose qui s'est produit dans l'application. Ils comportent un type
champ qui indique le type d'action effectuée, et des données supplémentaires peuvent également être incluses. Actions sont créés à l'aide de créateurs d'action, qui sont des fonctions qui renvoient des objets d'action. Par exemple:
// Action Types
const ADD_TODO = 'ADD_TODO';
// Action Creator
const addTodo =(text) => {
return {
type: ADD_TODO,
payload: text
};
};
Reducers
Reducers spécifiez comment l'état de l'application change en réponse à actions. Un réducteur est une fonction pure qui prend l'état actuel et une action comme arguments et renvoie un nouvel état. Reducers sont combinés en un seul réducteur de racine à l'aide de la combineReducers
fonction. Voici un exemple simple :
// 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
});
Travailler ensemble
Lorsque vous envoyez une action à l'aide de la dispatch
fonction, Redux transmet l'action à tous les reducers. Chaque réducteur vérifie si le type de l'action correspond au sien et met à jour la partie pertinente de l'état en conséquence. L'état mis à jour est ensuite stocké dans le Redux store et tous les composants connectés sont restitués en fonction du nouvel état.
Exemple de scénario
Imaginez une application de liste de tâches. Lorsqu'un utilisateur ajoute une nouvelle tâche, une action est distribuée avec le type ADD_TODO
et le texte de la tâche comme charge utile. Le réducteur de tâches reçoit cette action, ajoute la nouvelle tâche à l'état et renvoie l'état mis à jour.
Conclusion
Comprendre comment les Redux store, actions et reducers interagissent est crucial pour une gestion efficace de l'état. Cette architecture garantit une séparation claire des préoccupations et facilite la gestion des états d'application complexes. Au fur et à mesure que vous continuez à développer avec Redux, ces concepts constitueront la base de votre stratégie de gestion d'état.