1.0.0 • Published 8 years ago
redux-dynamics v1.0.0
redux-dynamics
Strongly-typed collection of useful tools to make your Redux workflow more dynamic.
Features
Reducers
- No huge
switchstatements! stateis always immutableactionis always immutablecontextshared between all subscriptions- Declarative reducer subscriptions to the actions
- Encouraging pure resolver functions
- Support of
RegExpas the expected action type
Getting started
Install
NPM:
npm install redux-dynamics --saveYarn:
yarn add redux-dynamicsCreate a reducer
// ./store/comments/index.js
import { Reducer } from 'redux-dynamics';
/* Create a new reducer with initial state */
const reducer = new Reducer({
likes: 0
});
/* Subscribe to different actions */
reducer.subscribe('ADD_LIKE', (state, action, context) => {
/* Note how both "state" and "action" are immutable */
const nextLikes = state.get('likes') + action.get('amount');
/* Resolve the next state */
return state.set('likes', nextLikes);
});
reducer.subscribe('ACTION_TYPE', (state, action, context) => state);
export default reducer;Connect to Redux
// ./store/reducer.js
import { createReducer } from 'redux';
import commentsReducer from './comments';
export default createReducer({
/* Convert "Reducer" class into pure reducer function */
comments: commentsReducer.toFunction()
});Documentation
For more details on methods, usage examples and troubleshooting see the Documentation.
Contributing
Feel free to submit your ideas on enhanced Redux workflow by issuing a Pull request.
In case you have discovered a bug, outdated documentation or any other mismatch, please create a new Issue.
License
This library is licensed under MIT license.