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

【react】メモリリーク対策のために廃止されたメソッド群と代替え手段

もう二年前の記事ですが

React v16.3.0でcomponentWillMount、componentWillRecieveProps

componentWillUpdateの三つが廃止されました。

 

render時に上記の処理の中でメモリリークが発生し

残ってしまった処理結果によりバグをもたらす可能性があることが主な原因です。

※メモリリークとは、以前のプログラムで使ったメモリがずっと使いっぱなしの

状態になってしまい、他のプログラムに必要なメモリが開放できないこと。

 

ですがいきなり禁止という訳ではなく、今まで同じように使うには、頭にUNSAFEをつけて

 

UNSAFE_componentWillMount

UNSAFE_componentWillRecieveProps

UNSAFE_componentWillUpdate

 

と書き直す必要があります。

それでもバグる時はバグるので最終手段で。

肝心の廃止後の代替え手段ですが

 

omponentWillMountの中の処理をコンストラクタ内に書く

getDerivedStateFromPropsメソッド内に処理を書く

 

上二つが最適解となっております。

非同期でデータを取得したいなら、componentDidmountの中で書いても

同じ動きができます。

 

バージョンアップにおける重要なポイントは以上ですが、reactのライフサイクルが少しでも

理解できていればここら辺は大丈夫かなと感じました。

最新のReactを使いたい場合は忘れない様に修正しておきましょう。

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