useEffect Hooks
短篇 React 學習筆記。
useEffect Hooks
Use this Hook to tell React what to do when the component needs to perform a task after rendering.
Sample:
This side effect will execute on every render including when the component has mounted and every time it updates.
Let’s use fetch user from an API as an example…
componentDidMount()
1
2
3
4
5
6
7
8
useEffect(() => {
// componentDidMount code goes here
fetchUserApi(id).then((user) => {
setUser(user)
})
}, []);
^Bc we passed an empty array as the second parameter, the useEffect hook will only execute once.
componentDidUpdate(prevProps)
1
2
3
4
5
6
7
useEffect(() => {
// ComponentDidUpdate code goes here
fetchUserApi(id).then((user) => {
setUser(user)
})
}, [id]);
^This effect will execute only once, when component is updated (includes re-rendering).
componentWillUnmount()
1
2
3
4
5
6
useEffect(() => {
return() => {
// componentWillUnmount code goes here
setUser(null)
}
}, []);
All Three Combined
1
2
3
4
5
6
7
8
9
10
useEffect(() => {
fetchUserApi(id).then((user) => {
setUser(user)
})
return() => {
setUser(null)
}
}, [id]);