Middleware API
@lite-fsm/middleware содержит готовые middleware и реэкспортирует точечные точки входа.
Импорт
import { devToolsMiddleware, immerMiddleware } from "@lite-fsm/middleware";
import { immerMiddleware } from "@lite-fsm/middleware/immer";
import { devToolsMiddleware } from "@lite-fsm/middleware/devTools";immerMiddleware
Позволяет писать reducer как Immer draft mutation и возвращать void.
import { immerMiddleware } from "@lite-fsm/middleware/immer";
const manager = MachineManager({ todos }, { middleware: [immerMiddleware] });immerMiddleware ставит marker __liteFsmAllowVoidReducer, поэтому core не бросает VOID_REDUCER_ERROR, когда reducer ничего не вернул.
devToolsMiddleware
Подключает Redux DevTools Extension.
import { devToolsMiddleware } from "@lite-fsm/middleware/devTools";
const manager = MachineManager(
{ app },
{
middleware: [devToolsMiddleware({ blacklistActions: ["TIMER_TICK"] })],
},
);| Опция | Назначение |
|---|---|
blacklistActions?: string[] | Action types, которые не отправляются в DevTools |
Без window.__REDUX_DEVTOOLS_EXTENSION__ middleware пропускает события без side effects.
Форма custom middleware
const middleware = (api) => (next) => (action) => {
const result = next(action);
return result;
};MiddlewareApi предоставляет getState, transition, replaceReducer, onTransition и condition.
Подробное руководство: @lite-fsm/middleware.
Last updated on