Ответ
Effector — это современная state-менеджер библиотека для управления состоянием в JavaScript-приложениях. Она основана на концепции реактивного программирования и предоставляет простой API для работы с состоянием, событиями и сайд-эффектами.
Ключевые сущности:
- Store — иммутабельный контейнер состояния.
- Event — источник изменений (аналог actions в Redux).
- Effect — сайд-эффект с поддержкой асинхронных операций.
Пример:
import { createStore, createEvent, createEffect } from 'effector';
const increment = createEvent();
const fetchDataFx = createEffect(async () => {
const res = await fetch('/api/data');
return res.json();
});
const $counter = createStore(0)
.on(increment, (state) => state + 1)
.on(fetchDataFx.doneData, (_, data) => data.count);
increment(); // Увеличит счетчик
fetchDataFx(); // Загрузит данные и обновит состояние
Преимущества:
- Минимальный boilerplate
- Высокая производительность
- Отличная TypeScript поддержка
- Гибкая интеграция с React/Vue/Solid