mirror of
https://github.com/zhigang1992/redux.git
synced 2026-06-15 02:29:07 +08:00
38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# `compose(...functions)`
|
||
|
||
Composes functions from right to left.
|
||
|
||
This is a functional programming utility, and is included in Redux as a convenience.
|
||
You might want to use it to apply several [store enhancers](../Glossary.md#store-enhancer) in a row.
|
||
|
||
#### Arguments
|
||
|
||
1. (*arguments*): The functions to compose. Each function is expected to accept a single parameter. Its return value will be provided as an argument to the function standing to the left, and so on. The exception is the right-most argument which can accept multiple parameters, as it will provide the signature for the resulting composed function.
|
||
|
||
#### Returns
|
||
|
||
(*Function*): The final function obtained by composing the given functions from right to left.
|
||
|
||
#### Example
|
||
|
||
This example demonstrates how to use `compose` to enhance a [store](Store.md) with [`applyMiddleware`](applyMiddleware.md) and a few developer tools from the [redux-devtools](https://github.com/gaearon/redux-devtools) package.
|
||
|
||
```js
|
||
import { createStore, combineReducers, applyMiddleware, compose } from 'redux'
|
||
import thunk from 'redux-thunk'
|
||
import DevTools from './containers/DevTools'
|
||
import reducer from '../reducers/index'
|
||
|
||
const store = createStore(
|
||
reducer,
|
||
compose(
|
||
applyMiddleware(thunk),
|
||
DevTools.instrument()
|
||
)
|
||
)
|
||
```
|
||
|
||
#### Tips
|
||
|
||
* All `compose` does is let you write deeply nested function transformations without the rightward drift of the code. Don’t give it too much credit!
|