REACTDonnéesGestion de l'état global avec Redux ou MobX

Gestion de l’état global avec Redux ou MobX

La gestion de l’état global est un aspect crucial du développement d’applications React. Il existe plusieurs bibliothèques et patterns pour gérer l’état global, mais deux des plus populaires sont Redux et MobX.

Redux

Redux est une bibliothèque JavaScript pour la gestion de l’état global. Elle fournit un store centralisé pour votre application, où l’état de l’application est stocké. Les actions sont des objets qui décrivent ce qui doit changer dans l’état, et les reducers sont des fonctions qui déterminent comment l’état change en réponse à ces actions.

Voici un exemple de base de la façon dont Redux peut être utilisé pour gérer l’état global :

import { createStore } from 'redux';
 
// Action
const incrementAction = {
 type: 'INCREMENT'
};
 
// Reducer
function counterReducer(state = 0, action) {
 switch (action.type) {
   case 'INCREMENT':
     return state + 1;
   default:
     return state;
 }
}
 
// Store
let store = createStore(counterReducer);
 
store.subscribe(() => console.log(store.getState()));
 
store.dispatch(incrementAction);

Dans cet exemple, nous avons une action incrementAction qui indique que nous voulons incrémenter le compteur. Nous avons également un reducer counterReducer qui détermine comment l’état change en réponse à cette action. Enfin, nous créons un store Redux avec ce reducer, et nous pouvons dispatcher des actions sur ce store pour changer l’état.

MobX

MobX est une autre bibliothèque pour la gestion de l’état global. Contrairement à Redux, MobX utilise un modèle de programmation réactive, ce qui signifie que vous pouvez observer les changements d’état et réagir à eux automatiquement.

Voici un exemple de base de la façon dont MobX peut être utilisé pour gérer l’état global :

import { observable, action } from 'mobx';
 
class CounterStore {
 @observable count = 0;
 
 @action increment() {
   this.count += 1;
 }
}
 
export default new CounterStore();

Dans cet exemple, nous avons une classe CounterStore avec une propriété observable count et une méthode action increment. La propriété count est marquée comme @observable, ce qui signifie que MobX la surveillera pour les changements. La méthode increment est marquée comme @action, ce qui signifie que MobX la traitera comme une action qui peut modifier l’état.

Chaque fois que la méthode increment est appelée, la propriété count est automatiquement mise à jour, et tous les observateurs de count sont notifiés de ce changement.

En conclusion, Redux et MobX sont deux bibliothèques puissantes pour la gestion de l’état global dans les applications React. Le choix entre les deux dépendra de vos besoins spécifiques et de votre préférence personnelle.