React Developer Toolsでレンダリングを可視化する

2022.04.19

こんにちは。データアナリティクス事業本部 サービスソリューション部の北川です。

React Developer Toolsは、React用開発ツールです。Reactの開発元であるMetaが提供しています。 結構有名ですが、まだ使ったことがない人に向け、簡単に書いていきます。

React Developer Toolsの使い方

拡張機能を追加します。

https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi

アイコンが追加されていることを確認します。通常のReactページで使用する場合、アイコンは青いですが、開発環境ではアイコンの色が赤くなります。

ローカル環境で使用するために、拡張機能の一覧から、React Developer Toolsの「拡張機能を管理」を選択します。

「ファイルのURLへのアクセスを許可する」をオンにします。

Reactを採用しているページで、デベロッパーツールを開くと、メニューに「Components」と、「Profiler」が追加されています。

Propsの確認

「Components」でpropsや、hooksの確認、レンダリング関係を見ることができます。

左側では、コンポーネントの階層を確認することができます。

右側では、以下を確認できます。

  • コンポーネント名
  • props
  • hooks
  • 親階層
  • 親コンポーネントのどのファイルのどの部分から呼ばれたのか

以前はhooksの部分でstateを表示していたと思うのですが、hooksに変わっています。個人的にはstateの表示の方が良かった気がします。

レンダリング関係の確認

またReact Developer Toolsでは、stateの状態が変化したときに、再レンダリングされるコンポーネントを可視化することができます。

「View settings」を選択し、「Highlight updates when components render.」にチェックを入れます。

再レンダリング発生時に、緑のハイライトが現れるようになります。 今回の例ですと、「Component1」が再レンダリングされているのがわかります。

また、レンダリング数が多いと緑のハイライトが黄色くなっていきます。

レンダリングが可視化できると、毎回コンソールでログを表示しなくても、無駄なレンダリングが発生していないか確認することができます。

上記の例では、Component1をメモ化してみました。メモ化していないComponent2では、無駄なレンダリングが発生しているのが確認できます。

まとめ

React Developer Toolsを使うと、レンダリングの削減など、パフォーマンスの見直しに役立つと思います。他にも機能が存在しますので、Reactを使うときは、ぜひ使ってみてください。

ではまた。