Соглашение об именах в Redux - «Редуктор» - это целый файл или только одна функция? - PullRequest
1 голос
/ 27 сентября 2019

У меня небольшой вопрос по поводу соглашения об именах в Redux:

Является ли reducer весь файл: auth.reducer.js

или это просто одна из многих "функций" (случаев) внутриfile:

...
  case LOGOUT_USER:
    return {
    ...state,
    loading: true,
  };
...

, поэтому файл должен называться auth.reducers.js

Когда мы говорим о actions, types, sagas, внутри файла их много, так чтофайл должен быть назван во множественном числе.

Ответы [ 2 ]

2 голосов
/ 27 сентября 2019

Это редуктор всего файла: auth.reducer.js

Да, это так.

Согласно MDN:

Метод redu () выполняет функцию редуктора (которую вы предоставляете) для каждого элемента массива, в результате чего получается одно выходное значение.

Каждый файл редуктора содержит один метод, а не методы, которые имеют разные случаи.И это возвращает один выход - состояние, а не комбинацию или разные выходы.Каждый reducer приводит к одному объекту состояния, который позже объединяется через combineReducers.

Мы ожидаем того же от auth.reducer.js.

1 голос
/ 29 сентября 2019

!!!Также возможна множественная функция редуктора в одном и том же файле reducer.js.

Как упоминается Dan Abramov (автор redux) в этом уроке https://egghead.io/lessons/react-redux-implementing-combinereducers-from-scratch

, это все еще возможнореализовать несколько функций редуктора в одном файле редуктора.Если вы решите реализовать различные функции редуктора в одном и том же файле редуктора, вы должны применить combineReducer(reducer1, reducer2) и, наконец, экспортировать этот комбинированный редуктор.

Например:

const todosReducer = combineReducers({todoReducer, visibilityReducer});

export default todosReducer;

Этот шаблон проектирования поможет намразделить логику редуктора на разные редукторы и сделать код более читабельным и тестируемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...