Use a class-based lifecycle β‘ under the React Hooks βοΈπ ..
Thinking in lifecycles terms in hooks is a bad practice.
You can follow this article for a useEffect guide and how it's bad to mix think.
In order to use this library, a React version >=16.8.0 is required which introduce React Hooks βοΈβ‘ ..
# npm ..
$ npm install use-lifecycle-hooks
# yarn ..
$ yarn add use-lifecycle-hooks
useComponentWillMount
β same with componentWillMount.useComponentDidMount
β same with componentDidMount.useComponentDidUpdate
β same with componentDidUpdate (pure componentDidUpdate).useComponentWillUnmount
β same with componentWillUnmount.
Every lifecycle hook can be used more than one time in the same function, observing the hook rulesπ.
Argument | Type | Descriptio | Note |
---|---|---|---|
funcs |
Function | callback function only allowed to return void. | ****** |
deps |
Array | all props/states values that change them lead to re-rendering. | only in useShuseShouldComponentUpdate. |
- [
useShouldComponentUpdate
][use-should-component-update-docs-url] β same with shouldComponentUpdate (and componentDidUpdate with comparison). usePureComponent
β same asuseShouldComponentUpdate
.withShouldComponentUpdate
β same asuseShouldComponentUpdate
but follow the hoc pattern.
This is a practical example of how to use. For more, you can review the docs dir.
import React from 'react';
import { useComponentDidMount } from 'use-lifecycle-hooks';
function yourComponent() {
// <yourComponent />
// State ..
const [state, setState] = React.useState(' Hello World !');
// ComponentDidMount ..
useComponentDidMount(() => {
setState(ComponentDidMountMsg);
});
return <h1>{state}</h1>;
}
You can play around with it on this sandbox codesandbox.io/use-lifecycle-hooks .. or clone the repo and play around with the all examples in the examples folder π».