1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エヌシーアイ総合システムAdvent Calendar 2022

Day 2

React パフォーマンス改善〜入門

Last updated at Posted at 2022-12-14

Reactで作った画面が遅い原因

おもに以下がパフォーマンス劣化の原因だそうです

  • 無駄にたくさんレンダリングしている
  • 計算処理が重い/無駄に実行されている

画面描画なのか、計算処理なのか当たりをつけるのが良さそうです

原因の調べ方

ブラウザのディベロッパーツールのパフォーマンスツールで確認します
特に遅くないサンプルなのですが、、スクリプト(計算処理)はこれくらい、レンダリング(画面描画)はこれくらいが見えますね

スクリーンショット 2022-12-14 20.19.09.png

レンダリングが遅かったら

どのタイミングでパフォーマンスが悪くなるか?ということも確認します

  • 初期表示が遅い
    • 大量データをリストコンポーネントにセットして表示など描画するコンポーネントが大量にないか確認する
  • イベント発火後に遅くなる
    • 本来再描画しなくて良いコンポーネントが再描画されてしまい遅くなっているので再描画されている部分を調査する

再レンダリングされている部分はchrome拡張ツール「React Developer Tool」で確認します
拡張ツールをインストールしてchromeを再起動するとディベロッパーツールのタブに「Component」と「Profiler」が表示されます
スクリーンショット 2022-12-14 20.30.24.png

Componentタブを選択後、設定ボタンを押して
Highlight updates when components render. にチェックします
スクリーンショット 2022-12-14 20.32.06.png

この状態で問題のイベントを実行すると再レンダリングされた箇所に水色の枠がパッと出てきます
スクリーンショット 2022-12-14 20.39.58.png

この水色枠の箇所に当たりをつけてパフォーマンスが悪くなった箇所を調査します

計算処理が遅かったら

useMemo() を使って毎回複雑な計算が実行されるのを防ぐ!(さっき教えてもらった)

あとは誰か教えて〜〜〜〜

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?