react-redux-auto

Built on top of react-redux, remove all boilerplate code and keep the best part of react-redux

Usage no npm install needed!

<script type="module">
  import reactReduxAuto from 'https://cdn.skypack.dev/react-redux-auto';
</script>

README

auto-react-redux

Override some react-redux functions to auto-generate, connect, dispatch store, state ...

- No more actions, actions creator, just use the direct name of reducer
- No more: action, type ... just create a reducer with first param: state, followed by other args
- No more dispatch, no more mapStateToProps ... just use listen for re-render when state changed
- Full compatible with React-redux so we can use Redux debug tool for debugging

Example of usage:


// store.js
let todoReducers = {
  addTodo: (state, todo) => [...state, todo],
  asyncAdd: async (state, todo) => {
      await setTimeout(() => (), 1000);
      return [...state, todo];
  }
}

let appStore = {
  todos: {reducers: todoReducers, default: {}},
};

const $store = createAutoReduxStore(appStore);
let [$store, _reduxStore] = createAutoReduxStore(appStore);
export var reduxStore = _reduxStore;


// index.js
import {reduxStore} from './store';

render(
<Provider store={reduxStore}>
<App/>
</Provider>,
document.getElementById('root')
);

// Todo.js
import {listen} from "../react-redux-auto";

class Todo extends React.Component {
  render() {
      return <button onClick={$store.todos.asyncAdd('New task')}>
          {$store.todos.value.map(todo => <div>{todo}</div>)}
      </button>
  }
}

export default listen(todos)(Todo);