はじめに
いなたつアドカレの三日目の記事です。
今回はReactでRestAPIなどから値を取ってくるのに、関数型コンポーネントでどーやってAPIから値取ってくんの?
componentDidMountなんてないよ?
componentDidUpdateなんてないよ?
ってなりますよね、僕はなります。
結論から言ってクレメンス
useEffectを使うンゴ
React Hooks にある、useEffectを使用します。
useEffectってなんぞや
関数コンポーネントで副作用を実行するためのフックで、classコンポーネント時のcomponentDidMount,componentDidUpdate,componentWillUpdateの3つにあたります。
じっそー
useEffect(() => {
// ここでAPIをたたく
},[])
useEffectの第一引数が、実行する関数で、第二引数が何が変化したときにuseEffectを実行するかを決めるものとなっています。
ここでは空配列を指定しています、空配列を指定することでコンポーネントが配置される前(componentDidMount)でのみuseEffectを実行するといったことができます。
useEffect(() => {
// ここでAPIをたたく
},[hoge])
これでhogeが変更された時に反応してuseEffectが実行され、APIを再度叩くことができます。
このようにしてきっちりバックエンドとフロントエンドを分離した際に再描画のタイミングを指定してAPIを再び指定することができます。