Вопрос проверяет понимание createListenerMiddleware из Redux Toolkit, который позволяет реагировать на действия Redux без создания сайд-эффектов в редьюсерах.
createListenerMiddleware — это middleware из Redux Toolkit, который позволяет выполнять произвольный код (побочные эффекты) в ответ на диспатч определенных экшенов. Он похож на саги или эпики, но проще и легче в использовании, так как не требует дополнительных библиотек.
Middleware перехватывает каждый диспатч и проверяет, соответствует ли он заданным условиям (например, типу экшена). Если условие выполняется, запускается колбэк, который может выполнять асинхронные операции, диспатчить другие экшены или взаимодействовать с состоянием.
import { createListenerMiddleware, isAnyOf } from '@reduxjs/toolkit';
import { addTodo, removeTodo } from './todosSlice';
const listenerMiddleware = createListenerMiddleware();
listenerMiddleware.startListening({
matcher: isAnyOf(addTodo, removeTodo),
effect: async (action, listenerApi) => {
console.log('Todo изменен:', action);
// Можно диспатчить другие экшены
listenerApi.dispatch({ type: 'log/action', payload: action.type });
},
});
export default listenerMiddleware;createListenerMiddleware — это удобный инструмент для обработки побочных эффектов в Redux, когда не требуется полная мощь саг или thunk. Он особенно полезен для простых сценариев, где нужно реагировать на действия без изменения логики редьюсеров.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию