Перейти к содержанию

compose

compose(...functions);

Объединяет функции справа налево.

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

Параметры

(аргументы)
функции для композиции. Ожидается, что каждая функция принимает один параметр. Ее возвращаемое значение будет представлено в качестве аргумента для функции стоящей слева, и так далее. Исключением является самый правый аргумент, который может принимать несколько параметров, поскольку он будет обеспечивать подпись для полученной в результате функции.

Возвращает

(Функция)
конечная функция полученая путем композиции переданных функций справа налево.

Пример

В этом примере показано, как использовать compose для расширения стора с applyMiddleware и несколькоми инструментами для разработки из пакета redux devtools.

import {
  createStore,
  applyMiddleware,
  compose,
} from 'redux';
import thunk from 'redux-thunk';
import DevTools from './containers/DevTools';
import reducer from '../reducers';

const store = createStore(
  reducer,
  compose(applyMiddleware(thunk), DevTools.instrument())
);

Советы

  • compose позволяет вам писать глубоко вложенные функции преобразований без дрейфа вправо (rightward drift) в коде. Не предоставляйте ей слишком многого!