Ответ
State managers помогают управлять состоянием приложения. Основные различия между ними:
-
Redux
- Единое хранилище (store)
- Неизменяемое состояние (immutable)
- Чистые редюсеры
const reducer = (state = initialState, action) => {
switch(action.type) {
case 'INCREMENT':
return { ...state, count: state.count + 1 };
default: return state;
}
}
-
MobX
- Использует наблюдаемые объекты (observables)
- Мутабельное состояние
- Автоматически отслеживает изменения
class Store {
@observable count = 0;
@action increment = () => this.count++;
}
-
Context API
- Встроен в React
- Прост для небольших приложений
- Может вызывать лишние ререндеры
-
Zustand
- Минималистичный
- Не требует оберток Provider
const useStore = create(set => ({
count: 0,
increment: () => set(state => ({ count: state.count + 1 }))
}));
Выбор зависит от сложности приложения и предпочтений команды. Redux для строгого контроля, MobX для гибкости, Context для простых случаев, Zustand для минимализма.