Chromeの開発者ツール（DevTooles）で最低限使えたほうがいい機能

十分に利用できてないな…と思いながらお世話になっているChromeの開発者ツール。
読んでいただいた方に1つでも発見があることを願って書きます。

## Chrome開発者ツールとは？
ウェブサービスの開発者なら必ず利用する開発者ツールですが、調べても機能の説明などがそれほどない（調べ方が悪い？）と感じています。

私はショートカットをF12に設定しています。
ページを表示している状態でF12を押すと画面右側に画像のようなウィンドが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/713bd13c-2a40-6446-e981-2823b89a4cb7.png)

画像のパフォーマンスの横にある「>>」をクリックするとさまざまなツールが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/7b984ad5-8073-878c-66f2-8e3788a47ad9.png)

拡張機能で入れたものも表示されるので人によって表示は異なると思います。

### よく使うパネル
- 要素検証
  - スタイル
  - 計算済み
  - イベントリスナー
- コンソール
- ネットワーク
- Lighthouse

個人としてよくお世話になるタブたちです。
え…このパネル使ってないの！？ってのがあったらぜひコメントください！

## 要素検証
ページに表示されている要素（DOM）の検証ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/522979cc-73e5-8389-14ac-9f96de3730f5.png)

一番左にあるアイコンを押すとページの要素を選択できるようになり、好きな要素を検索できます。
左から2つ目は「エミュレーター」でPCとスマホの表示を切り替えられます。

エミュレートのデバイスを追加したい時は右側にある「歯車」のアイコンをクリックした先にある「デバイス」を選択。
追加したいデバイスにチェックを入れるだけです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/421f3419-93e8-b372-489e-23315f2e6cbf.png)


:::note warn
エミュレーターはあくまでもそれなりに表示してくれるもの。という認識でいた方が良いです。
実機で表示するのと表示が異なることもあるので最後に実機で確認しておくことをオススメします。
:::

要素検証で要素を選択すると右側に要素の詳細が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/66b341e5-97db-6596-0af1-0a8fc082ddeb.png)

|パネル名|詳細|
|--|--|
|スタイル|要素に付与されたCSSのプロパティーを確認できます。一時的にスタイルを書き換えることも可能|
|計算済み|要素に指定されたCSSの詳細を確認できます|
|レイアウト|GridとFlexboxの詳細な状態を画面にて確認できます|
|イベントリスナー|要素に設定されたJavaScriptのイベントが確認できます|

レイアウトのパネルについて深堀しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/43b0f5fe-ebe5-9a70-8268-976f75b1a721.png)
要素検証の表示に画像のような「Flex」と表記されたものがあります。
要素の詳細を見る時に使えるタブがレイアウトです。
「FLex」と「レイアウトのFlexbox」が連動しています。
![画面収録-2022-11-29-8.05.48.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/8eb37dec-9f64-9fbc-6d92-92bd98903224.gif)

選択した状態にしておくと画面ではオーバーレイが表示されて要素の詳細を範囲で示してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/516e8306-ca05-207b-237f-2477453b9282.png)

## コンソール
フロントエンドのエラーを表示してくれるパネルです。
画像が読み込めない、クリックした時にイベントが走らない、非同期で取得されるはずの情報が取得されていないなど何かしらの不備が確認できた時に確認します。

JavaScriptで`console.log()`を記述したらこちらに表示されます。
細かい設定がありますが、**個人的にオススメなのは「ログを保持」のチェックを外し、「コンソールの類似するメッセージをまとめる」にチェックを入れるです。**

「ログを保持」にチェックを入れるとリロードする前のログも残ってしまうので見辛くなります。
以前のログと比較したい時だけチェックを入れるのが良いと考えています。

「コンソールの類似するメッセージをまとめる」は同じメッセージをまとめてくれるので、見やすくするためにチェックを入れています。
![画面収録-2022-11-29-8.16.04.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/b80259d2-f85e-29f1-b732-973b490d778f.gif)

## ネットワーク
いつ、どのファイルがどれくらいの時間で読み込まれたのか、ファイルのステータスなどが確認できるパネルです。
![画面収録-2022-11-29-8.48.28.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/71279e00-d5eb-416b-9b2e-e49799a17efd.gif)

読み込まれないファイルがどのような状態（200、404、500）なのかを確認する場合やJavaScriptの非同期通信した時の送ったデータや変換されるデータ、エラーになっている原因なども確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/caee29f2-f3aa-111b-c8ce-1ed5502534d1.png)

名前の一覧にあるファイルを選択すると詳細のパネルが右側に表示されます。
送ったデータはペイロードで、返ってきたデータはプレビューで確認できます。

## Lighthouse
パフォーマンスを計測するだけならデフォルトの設定でデバイスの選択だけ変えれば良いかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/d60e6ce1-e360-f4ab-d4d8-6336d3c785a4.png)

目的に応じてカテゴリーの項目から必要なものにチェックをしてカスタマイズしてください。

### 各モードについて

Navigationレポートはこれまでと同じですが、Chrome103から2つのモードが追加されたようなので調べてみました。

#### 測定期間（Timespans）
測定期間にして状態で「計測期間を開始」をクリックすると計測が開始されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/96534c8a-9f7e-5510-aad5-780050d9f0ab.png)

「計測期間を終了」を押すまでパフォーマンスが計測されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/fd50ea4a-74f5-710b-4f34-c257bc81497b.png)

操作したカ所のパフォーマンスが計測されるようなので、部分的な分析や改善策を出す時に有効な計測方法のようです。

https://github.com/GoogleChrome/lighthouse/blob/main/docs/user-flows.md#timespan

#### スナップショット（Snapshots）
スナップショットを実行すると表示されているカ所のページの状態を分析してくれるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146612/d3d316cb-3a3d-fd92-fb68-e4f97077ff09.png)

:::note info
測定期間やスナップショットで出てくる数値はパフォーマンススコアに直接影響しないとあるので、ページのパフォーマンス改善を目的とするなら修正する優先度は下げてもいいと考えます。
:::

## まとめ
Chromeの開発者ツールはアップデートによって新しい機能が追加されます。
今まで煩わしかったことが簡単にできるようになったり、詳細な分析が可能になったりしています。

本記事は機能のほんの一部だと考えています。
バージョンアップのたびに新機能の紹介ページを確認してみることをオススメします！

https://developer.chrome.com/ja/blog/