Incompose is a Inferno.js clone of the famous recompose lib for React.
npm install incompose
Following HoCs are available. If you miss any helper/HoC please send me a note on twitter @roman_zanettin or create an issue / open a PR. Thanks.
Please find the API and example code in the docs folder.
Incompose provides named and default imports:
import{withState}from'incompose';importwithStatefrom'incompose/dist/withState';import{defaultasInferno,linkEvent}from'inferno';import{compose,withState,shouldUpdate}from'incompose';constinc=(props)=>{props.setCount(props.count+=1);};constdec=(props)=>{props.setCount(props.count-=1);};constCounter=(props)=>(<div><h1>count : {props.count}</h1><buttononClick={linkEvent(props,dec)}>-</button><buttononClick={linkEvent(props,inc)}>+</button></div>);/** * with state creates 2 new props on the component props * props.count - contains the value (1 is set as default value) * props.setCount - contains the setter function */constwithCounterState=withState('count','setCount',1);/** * should update prevents the component of re-render (shouldUpdate lifecycle hook) * you can compare current and next props and decide whether the component * should update or not. In this example, the counter just updates if * props.count is even. */constwithUpdatePolicy=shouldUpdate((props,nextProps)=>(nextProps.count%2===0));/** * with compose all the extended functions are composed BEFORE Counter * gets rendered. Please not that order matters. */exportdefaultcompose(withCounterState,withUpdatePolicy,)(Counter);Special thanks to all the contributors and Andrew Clark (@acdlite) for creating this amazing lib for React!
Changelog is available here.
