For react class component, we have the componentWillMount() lifecycle method, where we can perform tasks before loading the component. Tasks like, a call to backend and use the response to show that data in that frontend.
What if I want the same thing in a functional component? Like I have used react chartJS and for that the data values I want to be retrieved from backend response, and then the chart will populate based on those datas.
componentWillMount
is call only one time before initial render.
I make a sample code, check it out below
import React, { useState, useEffect } from "react";
import "./styles.css";
export default function App() {
const [mounted, setMounted] = useState(false)
if(!mounted){
// Code for componentWillMount here
// This code is called only one time before intial render
}
useEffect(() =>{
setMounted(true)
},[])
return (
<div className="App">
</div>
);
}
componentDidmount
and you can simply use useEffect
hook with empty array as dependencies in functional componentimport React, { useState, useEffect } from "react";
import "./styles.css";
export default function App() {
const [mounted, setMounted] = useState(false)
useEffect(() =>{
// This is similar to componentDidMount
// Call back-end api here
},[])
return (
<div className="App">
</div>
);
}