17
17
<img src="https://custom-icon-badges.demolab.com/badge/typescript-%23007ACC.svg?logo=typescript&logoColor=white" />
18
18
</a >
19
19
<a href =" https://www.npmjs.com/package/@better-hooks/lifecycle " >
20
- <img src="https://custom-icon-badges.demolab.com/bundlephobia/min /@better-hooks/lifecycle?color=64BC4B&logo=package " />
20
+ <img src="https://custom-icon-badges.demolab.com/npm/v /@better-hooks/lifecycle.svg?logo=npm&color=E10098 " />
21
21
</a >
22
22
<a href =" https://www.npmjs.com/package/@better-hooks/lifecycle " >
23
- <img src="https://custom-icon-badges.demolab.com/npm/v/@better-hooks/lifecycle.svg?logo=npm&color=E10098" />
23
+ <img src="https://custom-icon-badges.demolab.com/bundlephobia/minzip/@better-hooks/lifecycle?color=blueviolet&logo=package" />
24
+ </a >
25
+ <a href =" https://www.npmjs.com/package/@better-hooks/lifecycle " >
26
+ <img src="https://custom-icon-badges.demolab.com/npm/dm/@better-hooks/lifecycle?logoColor=fff&logo=trending-up" />
24
27
</a >
25
28
</p >
26
29
@@ -36,6 +39,8 @@ React lifecycle turned into dev friendly and readable hooks
36
39
37
40
💎 ** No external dependencies**
38
41
42
+ 🪄 ** Increases code readability**
43
+
39
44
## Installation
40
45
41
46
``` bash
@@ -54,9 +59,17 @@ yarn add @better-hooks/lifecycle
54
59
55
60
``` tsx
56
61
import React from " react" ;
57
- import { useDidMount , useDidRender , useDidUpdate , useWillUnmount ,useIsMounted , useWillMount } from " @better-hooks/lifecycle" ;
58
-
59
- const MyComponent: React .FC = () => {
62
+ import {
63
+ useDidMount ,
64
+ useDidUpdate ,
65
+ useWillUnmount ,
66
+ useIsMounted ,
67
+ useWillMount ,
68
+ useForceUpdate ,
69
+ useDidChange
70
+ } from " @better-hooks/lifecycle" ;
71
+
72
+ const MyComponent: React .FC = (props ) => {
60
73
const [isOpen, setIsOpen] = React .useState (false )
61
74
62
75
// returns ref with the mounted boolean state
@@ -75,11 +88,6 @@ const MyComponent: React.FC = () => {
75
88
// ...
76
89
})
77
90
78
- // Called second, when initial DOM changes are triggered
79
- useDidRender (() => {
80
- // ...
81
- })
82
-
83
91
// Called when isOpen change
84
92
useDidUpdate (() => {
85
93
// ...
@@ -90,6 +98,13 @@ const MyComponent: React.FC = () => {
90
98
// ...
91
99
}, [isOpen ], true )
92
100
101
+ // Called when dependencies change, we can inspect previous dependencies
102
+ useDidChange ((prevProps ) => {
103
+ if (prevProps .value !== props .value ) {
104
+ // ...
105
+ }
106
+ }, [props ], true )
107
+
93
108
// Called last
94
109
useWillUnmount (() => {
95
110
// ...
0 commit comments