mini-context-store

0.1.4 • Public • Published

Mini Context Store

A react state management library using new context api.

Installation

npm i mini-context-store --save

Basic Usage

  import React, { Fragment } from 'react'
  import createStore from 'mini-context-store'

  const { Provider, connect } = createStore(
    { counter: 0 },
    {
      onAdd: () => dispatch => dispatch(({ counter }) => ({ counter: counter + 1 })),
      onSubtract: () => dispatch => dispatch(({ counter }) => ({ counter: counter - 1 })),
    },
  )
  let Counter = ({ counter, onAdd, onSubtract }) => (
    <Fragment>
      <span>{counter}</span>
      <button onClick={onAdd}>+1</button>
      <button onClick={onSubtract}>-1</button>
    </Fragment>
  )
  Counter = connect((state, handlers) => ({...state, ...handlers}))(Counter)

  const App = () => <Provider><Counter /></Provider>

Examples

More examples click here

API

createStore

  const {Provider, Consumer, connect} = createStore(initialState, handlers)

Provider

  <Provider>
    {/* children */}
  <Provider/>

A react component allows Consumers or connected component to subscribe the state changes.
NOTE: No need to pass value to Provider

Consumer

  <Consumer>
    {(state, handlers) => /* use state and handlers here */}
  </Consumer>

A react component subscribes state changes.

connect

  const EnchancedComponent = connect(mapStoreToProps)(BaseComponent)

connect is a function receives a map functions and return a high-order component. The high-order component receives a BaseComponent, then return a EnchancedComponent that subscribes state changes.
mapStoreToProps receives state and handlers, return an object that will be merged in EnchancedComponent' props.

Reference

Package Sidebar

Install

npm i mini-context-store

Weekly Downloads

5

Version

0.1.4

License

MIT

Unpacked Size

10.3 kB

Total Files

5

Last publish

Collaborators

  • beizhedenglong