# Redux

State containers similar to Redux stores but without the boilerplate.

State containers expose Redux-like API:

```js
container.getState()
container.dispatch()
container.replaceReducer()
container.subscribe()
container.addMiddleware()
```

State containers have a reducer and every time you execute a state transition it
actually dispatches an "action". For example, this

```js
container.transitions.increment(25);
```

is equivalent to

```js
container.dispatch({
  type: 'increment',
  args: [25],
});
```

Because all transitions happen through `.dispatch()` interface, you can add middleware—similar how you
would do with Redux—to monitor or intercept transitions.

For example, you can add `redux-logger` middleware to log in console all transitions happening with your store.

```js
import logger from 'redux-logger';

container.addMiddleware(logger);
```