React
Tue, 03 May 2022 11:06:52 GMT — Properties
Properties
Key | Value |
---|---|
Identifier | react |
Name | React |
Type | Topic |
Creation timestamp | Tue, 03 May 2022 11:06:52 GMT |
Modification timestamp | Tue, 03 May 2022 11:06:52 GMT |
This topic has no text.
Notes
React useEffect hook to fetch data
The useEffect
hooks syntax looks pretty straight forward with a fetch
request wrapped inside the hook and the other argument can have three possible inputs, nothing, empty array and array containing state, props or both.
The useEffect
hook always run the callback function that is inside of it after the component has been rendered and here the fetch
request gets initiated after the component is rendered and the data is fetched and set to the info state and after that the question is whether the useEffect
needs to be run again after once it has been executed which depends on the dependency array:
No Dependency Array
useEffect
runs the callback function every time after the component it is in gets rendered. In simple words, the callback function is dependent on everything (state, props of that component).
useEffect(() => {
fetch("https://jsonplaceholder.typicode.com/todos/1")
.then(res => res.json())
.then(data => setState(data))
})
Empty Dependency Array ([])
useEffect
runs the callback function only one time after the component gets rendered first time. In simple words, the callback function is dependent on nothing.
useEffect(() => {
fetch("https://jsonplaceholder.typicode.com/todos/1")
.then(res => res.json())
.then(data => setState(data))
}, [])
Filled Dependency Array ([state, props])
useEffect
runs the callback function every time the state/props that is inside the dependency array updates. In simple words, the callback function is dependent on particular states and props.
useEffect(() => {
fetch("https://jsonplaceholder.typicode.com/todos/1")
.then(res => res.json())
.then(data => setState(data))
}, [state, props])