react-deflux

0.0.2 • Public • Published

React Deflux

Yet another flux implementation, with bindings for react. Built over react's new context API.

Getting Started

Wrap ReState over your root component.

 
import ReState from 'react-deflux';
 
<ReState
  store={initialState} // initial state of your store
  applyMiddleWare={fetchDataMiddleWare} // Optional, Allows managing side-effects
>
  <App />
</ReState>
 

That's it, now any child component can connect to store.

 
import { connect } from 'react-deflux';
 
const App = ({ buttonClick }) => (
  <div>
    <button onClick={buttonClick} > Fire Action! </button>
  </div>
);
 
const mapStateToProps = state => ({
  ...state
})
 
const mapDispatchToProps = (dispatch) => ({
  buttonClick: _ => dispatch({ type: 'DUMMY_ACTION'})
})
 
export default connect(mapStateToProps, mapDispatchToProps)(App)
 

Middleware

This the best part. You can pass any function (middleware) to the applyMiddleWare prop, and it will be fired with every action.

 
// Handling async with middleware
 
export default state => action => dispatch => (
  action.type === 'FETCH_DATA' &&
    fetch('https://jsonplaceholder.typicode.com/posts/1')
      .then(response => response.json())
      .then(json => dispatch({ type: 'FETCHED_DATA', payload: { apiData: json } }))
)
 

/react-deflux/

    Package Sidebar

    Install

    npm i react-deflux

    Weekly Downloads

    0

    Version

    0.0.2

    License

    none

    Unpacked Size

    10.6 kB

    Total Files

    6

    Last publish

    Collaborators

    • kanitsharma