Привет! Как поставщик редукторов, я своими глазами видел, насколько важны редукторы в различных отраслях, особенно в приложениях 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 под капотом, что позволяет нам писать код, который выглядит так, как будто мы изменяем состояние, но на самом деле он создает новый объект состояния.


Теперь давайте поговорим о реальных редукторах, которые мы поставляем. Мы предлагаем широкий ассортимент редукторов, таких какКонцентрический редуктор из нержавеющей стали,Эксцентриковый редуктор из нержавеющей стали, иКонцентрический редуктор из углеродистой стали. Эти переходники используются в трубопроводных системах для изменения диаметра трубы, что имеет решающее значение для регулирования потока жидкости.
В приложении 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 по чистым функциям и неизменяемости
