Как работает редуктор в приложении Redux — Toolkit?

Nov 14, 2025

Оставить сообщение

Привет! Как поставщик редукторов, я своими глазами видел, насколько важны редукторы в различных отраслях, особенно в приложениях Redux — Toolkit. Итак, давайте углубимся в то, как работает редуктор в приложении Redux — Toolkit.

Прежде всего, что такое Redux — Toolkit? Это набор инструментов, упрощающий процесс работы с Redux, который представляет собой контейнер с предсказуемым состоянием для приложений JavaScript. Redux помогает более организованно управлять состоянием приложения, особенно в крупных проектах, где отслеживание изменений состояния может оказаться довольно запутанным.

Редюсер в Redux — Toolkit — это чистая функция. Что это значит? Что ж, чистая функция — это такая функция, которая при одних и тех же входных данных всегда возвращает один и тот же результат и не имеет никаких побочных эффектов. В контексте Redux — Toolkit редуктор принимает текущее состояние приложения и действие в качестве входных данных и возвращает новое состояние.

Давайте разберем это на примере. Предположим, мы создаем простое приложение со списком дел. Состояние нашего приложения может представлять собой массив задач, где каждая задача представляет собой объект с такими свойствами, какидентификатор,заголовок, изавершенный.

// Исходное состояние const InitialState = { Tasks: [] }; // Функция редуктора const TaskReducer = (state = InitialState, Action) => { switch (action.type) { case 'ADD_TASK': return { ...state, Tasks: [...state.tasks, action.payload] }; случай 'REMOVE_TASK': return { ...state, Tasks: state.tasks.filter(task => Task.id!== action.payload) }; по умолчанию: возвращаемое состояние; } };

В этом примереTaskReducerэто наша функция редуктора. Все начинается с начального состояния, которое представляет собой объект с пустым массивом задач.действиеэто объект, имеющийтипсвойство, которое описывает, какое действие мы хотим выполнить, и необязательноеполезная нагрузкасвойство, которое может нести дополнительные данные.

Когда действие типаДОБАВИТЬ_ТАСКотправляется, редуктор создает новый объект состояния. Он распространяет существующее состояние с помощью оператора распространения (...состояние), а затем обновляетзадачимассив, добавив новую задачу издействие.полезная нагрузка.

Аналогично, когда действие типаREMOVE_TASKотправляется, редуктор отфильтровывает задачу с заданнымидентификаториззадачимассив и возвращает новое состояние.

В приложении Redux — Toolkit мы можем использоватьсоздатьSliceфункция, которая еще больше упрощает процесс создания редукторов.

импортировать { createSlice } из @reduxjs/toolkit; const TaskSlice = createSlice({ name: 'tasks', InitialState: {задачи: [] }, редукторы: { addTask: (state, action) => {state.tasks.push(action.payload); }, RemoveTask: (state, action) => {state.tasks = state.tasks.filter(task => Task.id!== action.payload); } } }); экспортировать константу {addTask, RemoveTask} = TaskSlice.actions; экспортировать TaskSlice.reducer по умолчанию;

создатьSliceфункция принимает объект симя,начальное состояниеиредукторыобъект. Внутриредукторыобъект, мы определяем наши действия как функции. Обратите внимание, что мы можем напрямую изменитьсостояниевнутри этих функций. Это связано с тем, что Redux-Toolkit использует Immer под капотом, что позволяет нам писать код, который выглядит так, как будто мы изменяем состояние, но на самом деле он создает новый объект состояния.

Stainless Steel Concentric ReducerStainless Steel Eccentric Reducer

Теперь давайте поговорим о реальных редукторах, которые мы поставляем. Мы предлагаем широкий ассортимент редукторов, таких какКонцентрический редуктор из нержавеющей стали,Эксцентриковый редуктор из нержавеющей стали, иКонцентрический редуктор из углеродистой стали. Эти переходники используются в трубопроводных системах для изменения диаметра трубы, что имеет решающее значение для регулирования потока жидкости.

В приложении Redux — Toolkit концепция в некотором смысле аналогична. Точно так же, как наши физические редукторы контролируют поток жидкостей в трубах, редукторы в приложении Redux — Toolkit контролируют поток данных и изменения состояния.

Когда действие отправляется в приложении Redux — Toolkit, оно проходит через редуктор. Затем редуктор решает, как обновить состояние в зависимости от типа действия и полезной нагрузки. Этот процесс гарантирует, что изменения состояния будут предсказуемыми и простыми для понимания.

Допустим, у нас есть более сложное приложение с несколькими редукторами. В Redux — Toolkit мы можем комбинировать эти редукторы, используякомбинироватьРедукторыфункция.

импортировать {combinReducers} из '@reduxjs/toolkit'; импортировать TaskReducer из './taskReducer'; импортировать userReducer из './userReducer'; const rootReducer = joinReducers({задачи: TaskReducer, пользователи: userReducer}); экспортировать rootReducer по умолчанию;

Здесь мы объединяемTaskReducerиuserReducerв единыйrootReducer. Состояние нашего приложения теперь будет иметь два свойства:задачиипользователи, каждый из которых управляется соответствующим редуктором.

В реальном сценарии разные части приложения могут предъявлять разные требования к управлению состоянием. Точно так же, как у нас есть разные типы редукторов для разных трубопроводных систем, мы можем использовать разные редукторы в приложении Redux — Toolkit для управления различными аспектами состояния приложения.

Если вы работаете над проектом Redux — Toolkit и вам нужны рекомендации по структурированию ваших переходников, или если вы ищете высококачественные физические переходники для своих трубопроводных систем, не стесняйтесь обращаться к нам. Мы здесь, чтобы помочь вам со всеми вашими потребностями в редукторах, будь то в цифровом мире Redux - Toolkit или в физическом мире трубопроводов.

Свяжитесь с нами, чтобы начать обсуждение закупок и найти лучшие переходники, отвечающие вашим конкретным требованиям.

Ссылки:

  • Redux — официальная документация Toolkit
  • Документация JavaScript по чистым функциям и неизменяемости