浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【react】reactのcomponentDidUpdate機能をおさらい

お題

reactのcomponentDidUpdate機能をおさらい

最近reactでhook昨日のuseeffectなるものの使い方を学びがてら現在のreactの

ライフサイクルのおさらいをしていました。

hookのuseeffectとは、componentDidmountとcomponentDidUpdateとcomponentWillmoutの

機能を一つにまとめたものらしくこの関数一つで三つの役割を持つことができて

ここで更新された値をごにょごにょする・管理がかなり楽になることのこと。

そこでふと「componentDidUpdateってどんな関数だっけ?」と思ったので復習がてら

使い方をググることに。

componentDidmountしかまともに使っていなかったのでどんな関数だっけと戸惑いながら

componentDidUpdateの使い方をおさらいすることにしました。

どんな関数?

componentDidUpdateとは、setStateで何かの値が更新された後に呼ばれる関数のこと。

メリット

・更新後の値を一番安全に取ることができる場所

・更新前の値を拾うことができる

・componentDidUpdate内でsetStateしても余計な描画をしないのでユーザーに違和感を与えない

基本的な使い方

componentDidUpdate(prevState) {
  if (this.state.name !== prevState.name) {
    console.log("nameが変更されました")
  }
}

注意点

基本的には更新前の値と更新後の値を比較して何か作業を追加するのが主です。

正しく比較しないとupdate->setState->render->update->setState->renderと無限ループを

起こすので必ず更新前の値と更新後の値を正しく比較した上で処理を追加する必要があります。

まとめ

何か更新されたあとの結果次第で処理を追加したい時は実装するべきだと思います。

使い方がシビアで、何も考えずに実装するとループを起こしたりバグを生んだりとややめんどうな

動きですが現状では更新後の比較を安全にできるのがこの関数だけなのでまあ妥協です。

  • この記事いいね! (0)