1.0.8 • Published 5 years ago

react-usereducer v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

React useReducer

Built in react state management using useReducer hook.

Installation

React useReducer requires React 16.8.0 or later.

npm i --save react-usereducer

Usage

Same with react-redux configuration.

Provider

React useReducer provides Component, which makes the store available to the rest of your app.

import React from 'react';
import ReactDOM from 'react-dom';

import { Provider, createStore } from 'react-usereducer';
import reducer from './reducer';

let store = createStore(reducer);

import App from './App';

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

connect

React useReducer provides a connect method for you to subscribe your component to the root state manager.

import { connect } from 'react-usereducer';
import { addTask, removeTask } from './actionCreators';

// const Todo = ...

const mapStateToProps = state => {
  return {
    task: state.counter
  }
}

const mapDispatchToProps = { addTask, removeTask };

export default connect(mapStateToProps,mapDispatchToProps)(Todo)

createStore

React useReducer provides a createStore method for you to initialize state.

import ReactDOM from 'react-dom';

import { Provider, createStore } from 'react-usereducer';
import reducer from './reducer';

import App from './App';

const store = createStore(reducer);

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

combineReducers

React useReducer provides a combineReducer method to handle multiple reducers.

import { combineReducers, Provider, createStore } from 'react-usereducer';
import React from 'react';
import ReactDOM from 'react-dom';

import todoReducer from ‘./todoReducer’;
import booksReducer from ‘./booksReducer’;

const rootReducer = combineReducers({
  books: todoReducer,
  todo: todoReducer
});

let store = createStore(rootReducer);

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

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago