Не используйте крючки в производстве еще
На момент написания этого письма Крючки находятся в альфа. Их API может измениться в любое время.
Я рекомендую вам экспериментировать, повеселиться и использовать крючки в ваших боковых проектах, но не в производственном коде, пока они не стабильны.
Исходный код и демо
Вот Github и CodeSandbox Ссылки.
упред
Реагистрировать документы иметь пример приложения, демонстрирующий Успенсер Крюк.
Для демо-целей я в стиле это немного.
Код компонента
JSX прост: он отображает текущий Считать с 3 кнопками.
Счетчик Компонент звонит Успенсер с редуктором и начальным состоянием, который возвращает массив с текущим Государство и а отправка функция.
Нажав на любую из кнопок звонков отправка с объектом действий.
Начальное состояние
Код редуктора
Редуктор решает, как следует изменить состояние на основе существующего объекта состояния и действия, который он получает.
Если вы работали с Redux, вы знаете эту настройку.
Мы видим, что он поддерживает три действия: Сброс , увеличение , а также уменьшение Отказ
Сброс : Устанавливает Считать до 0.
увеличение : Увеличивается Считать к 1.
уменьшение : Уменьшает Считать к 1.
Любые другие результаты действия в редукторе, возвращающемся его данным Государство Отказ
создатель
Вы также можете знать о создатель .
function createReducer(initialState, handlers) {
return function reducer(state = initialState, action) {
if (handlers.hasOwnProperty(action.type)) {
return handlers[action.type](state, action);
} else {
return state;
}
};
}
Это помощник функции из Docks redux Это позволяет вам описать редукторы в виде отображений из типов действий к обработчикам.
Нет больше случаев переключателя
Вместо Переключатель Случаи, мы можем использовать функции для каждого типа действия.
Дополнительный бонус в том, что если данное действие не совпадает, Творцезерщик заботится о по умолчанию дело, возвращая Государство Отказ
Работает с Userucer
С Успенсер На основании тех же принципов они идеально совместимы!
Я создам новый файл проекта, Createrentucer.js Отказ
А также Экспортируйте функцию помощника из него:
Затем используйте это так:
Очиститель редукторы
Это, на мой взгляд, намного приятнее.
Просто дайте ему начальное состояние, а также типы действий отображения объектов к соответствующим функциям.
Вы можете получить доступ к Государство и Действие В каждом из этих функций, поэтому у вас есть все необходимая информация!
Функциональность не изменилась вообще.
Все еще просто редуктор
Это работает, потому что Успенсер не волнует Как Вы создаете редуктор.
Будь то Переключатель , Если/else или Творцезерщик , Просто убедитесь, что ваш конечный результат является редуктором Отказ
Я надеюсь, что вам понравился этот краткий кусок!
Оригинал: “https://www.freecodecamp.org/news/did-you-know-createreducer-works-with-react-hooks-heres-how-b324c558e12f/”