This boilerplate manages application state using Redux, makes it
immutable with ImmutableJS
and keeps access performant
via reselect
.
For managing asynchronous flows (e.g. logging in) we use redux-saga
.
For routing, we use react-router
in combination with react-router-redux
.
We include a generator for components, containers, sagas, routes and selectors.
Run $ npm run generate
to choose from the available generators, and automatically
add new parts of your application!
Note: If you want to skip the generator selection process,
$ npm run generate <generator>
also works. (e.g.$ npm run generate route
)
We adopted a split between stateless, reusable components called (wait for it...)
components
and stateful parent components called containers
.
See this article by Dan Abramov for a great introduction to this approach.