why-did-you-renderをセットアップして使用する手順について説明します。
why-did-you-renderのセットアップ
手順1:アプリプロジェクトにwhy-did-you-renderをインストールする
why-did-you-renderをインストールすると、Reactコンポーネント内の不要な再レンダリングの特定に役立つ重要なデバッグツールがプロジェクトに追加され、アプリのパフォーマンスを最適化できるようになります。
コマンドを実行すると、package.jsonファイルのdevDependenciesセクションにwhy-did-you-renderパッケージが追加されて表示されます。パッケージファイルは、プロジェクトディレクトリのnode_modulesフォルダに追加されます。
手順2:アプリのbabel.config.jsにwhy-did-you-renderプラグインを追加する
以下の構成をアプリのbabel.config.jsに追加します。
why-did-you-renderパッケージとの互換性が保証されます。
手順3:wdyr.tsxファイルを作成する
why-did-you-renderの一元的な構成を設定し、特定の設定でのライブラリ初期化と、アプリ全体での動作制御ができるようになります。
wdyr.tsxファイルは、why-did-you-renderのトラッキング動作を構成するエントリファイルです。
trackAllPureComponents構成では、Pure React コンポーネントのトラッキングのみが可能になります。
アプリコード内のその他のコンポーネントをトラッキングするには、コンポーネントのwhyDidYouRenderをtrueに設定します。
例:
手順4:wdtr.tsxをアプリのindex.jsにインポートする
why-did-you-renderがフックを適切に設定し、アプリ全体のコンポーネントレンダリングをトラッキングできるようになります。
手順5:アプリをDebugモードで実行し、why-did-you-renderのログを調べる
- アプリをデバッグモードで実行します。手順については、Vega Studioのセットアップと使用方法を参照してください。
- スクロールなどのアクションをアプリで実行します。
-
アプリログに表示される
why-did-you-renderのログを調べます。アプリログの表示方法については、ログの表示を参照してください。 - 再レンダリング中のコンポーネントのレンダリングの理由を分析します。
- 根本的な原因を修正して、不要な再レンダリングを排除してください。
why-did-you-renderのログ出力の例
useEffectフック内で更新が行われたため、Gridコンポーネントが再レンダリングされていることがわかります。
Gridコンポーネントの再レンダリングを解決するには、useEffectフック内の不要な状態更新を削除します。
関連トピック
- ▶️ Vegaアプリのパフォーマンスの向上
- 💬 コミュニティ:React DevToolsを使用してコンポーネントのレンダリングをプロファイリング
- 💬 コミュニティ:Vegaアプリの一般的な問題を解決する方法

