react-functional
Add life cycle methods to stateless functional components, without the class noise.
Supported Version
React 16 (use v2.0.0 for older versions)
npm i --save react-functional
functional(component)
Pass life cycle methods as an options object
{ return <div> propsname </div>} const options = propsname !== nextPropsname ComponentA options
Add life cycle methods to function component
{ return <div> propsname </div>} ComponentA propsname !== nextPropsname ComponentA
Compose component from an object
{ return propsname !== nextPropsname} { return <div> propsname </div>} shouldComponentUpdate render
Access Component Instance
Since this isn't a class, using this
to lookup a component
instance is undesirable (and probably bug-prone). So react-functional
passes the component instance as the last argument of the render method
and all life cycle methods
{ return <input ref='name' onClick=console/>} const options = cmprefsnamevalue = nextPropsname ComponentA options
Supported properties
propTypes
defaultProps
displayName
(auto-detected from function names)
Supported methods
componentWillMount(props)
componentDidMount(props, refs)
componentWillReceiveProps(props, nextProps, refs)
shouldComponentUpdate(props, nextProps, refs)
componentWillUpdate(props, nextProps, refs)
componentDidUpdate(props, prevProps, refs)
componentWillUnmount(props, refs)
Test Coverage
npm run cov
File | % Stmts | % Branch | % Funcs | % Lines |
---|---|---|---|---|
All files | 100 | 100 | 100 | 100 |
npm test
test/index.js ✓ componentWillMount called ✓ render ✓ div element rendered ✓ prop passed through ✓ instance passed through render ✓ instance passed through lifecycle methods ✓ componentWillMount called ✓ render ✓ div element rendered ✓ prop passed through ✓ instance passed through render ✓ instance passed through lifecycle methods object component ✓ componentWillMount called ✓ render ✓ div element rendered ✓ prop passed through ✓ instance passed through render ✓ instance passed through lifecycle methods
Thanks
- react-stateless for inspiration and code
- nearForm for sponsoring