React Developer Toolsのすすめ

2019年9月~29歳で未経験から営業→エンジニアになった私が、
脱未経験エンジニアを目指して、業務の中で学んだこと、会社の業務について書いています。
私の現状については最初の投稿をご参照ください。
[[最初の投稿](https://qiita.com/ssuzuki0301/items/ecfde22d30f8f1032c49)]

最近はReact/Reduxでの開発がメインとなっており、
開発中の画面やデバッグの際にReact Developer Toolsを使用することで
効率的に作業が進められるようになったので簡単に紹介します。

# React Developer Toolsについて
Facebookから提供されている公式のReact用のデバッグツールです。
このツールを使用することで、下記のことをしながら作ったページの状態を確認して作業ができます。

- コンポーネントの構造を視覚的に把握できる
- コンポーネント間で渡されているPropsの値が確認できる
- Stateの値が確認できる
- 実際に値を変えて動作の確認ができる

#ツールのインストール方法

今回はGoogle Chromeの拡張機能版の操作をご紹介します。
※他にもFirefoxの拡張機能版、Standalone版があります。

**インストール**
下記のリンクから拡張機能としてインストールします。
[Google Developer Toolsのインストール](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi)

**インストール後**
上記でインストールするとChromeのアドレスバーの横あたりに、
画像のようにReactのロゴのアイコンが表示されるようになります。
<img width="68" alt="スクリーンショット 2020-01-27 21.58.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530688/e25e1242-968c-70dd-dc84-a0cd9ed3d167.png">
上記の画像の状態は閲覧しているページにReactが使用されておらず、ツールは使用できません。

Reactが使用されているページを表示すると、次のようにReactロゴに色が付き、アクティブの状態になります。
<img width="74" alt="スクリーンショット 2020-01-27 22.05.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530688/eeab76b4-b550-b6dc-6452-f680f9b19106.png">
この状態であればReact Developer Toolsが使用可能です。
ツールが反応してアクティブの状態になれば、Reactが使用されているということなので、色々なサイトを見て「このサイトReact使われてるのか〜」という楽しみ方もできます。

#使い方
ツールがアクティブの状態でChrome DevToolsを開きます。
DevToolsの開き方は、
Macのショートカットだと「command + option + i」
Chromeブラウザから「設定」>「その他のツール」>「デベロッパーツール」
で開くことができます。

DevToolsを立ち上げると、Reactのロゴと共に「Components」「Profiler」が表示されます。
※表示されていない場合は、DevToolsが縮小されて隠れているはずなので「>>」のマークを押すと出てくると思います。
<img width="417" alt="スクリーンショット 2020-01-27 22.25.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530688/8c2c9093-4150-0062-e362-53bebeffe838.png">

**Componentsを選択することで、componentのツリー構造、props、stateが確認できます。**
※Profilerについての説明は今回割愛します。
今回はYahoo！JapanのページをReact Developer Toolsで見てみましょう。
<img width="1432" alt="スクリーンショット 2020-01-27 22.30.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530688/375fd2dc-6a6c-8f91-ccdd-9fbebc18c721.png">

このようにざっとcomponentのツリー構造やprops、stateが確認できます。
公開されているProduction環境のサイトなので細かな値は確認できませんが、大まかに見ることができますね。

#開発環境での使用例
次にProductionではない開発環境のページでの使用例を見てみましょう。
その場合、Reactロゴが赤色で表示されます。
アイコンをクリックすると「Reactの開発環境でビルドされているページだよ〜」と表示されます。
<img width="488" alt="スクリーンショット 2020-01-27 22.36.28.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530688/0598e826-7df3-1d51-7213-beb9a6b7e3ff.png">

実際に開発中のページをツールで見てみます。
とある画面に未ログインの状態でアクセスしています。
<img width="657" alt="スクリーンショット 2020-01-27 22.42.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530688/aa39b5aa-7e01-dd7d-b2dd-9318addf6fdd.png">

propsが表示されています。
connectやwithRouterやwithStyleなど関連する情報も表示されます。

開発中なのでログインの処理が画面上でできないため、
ツール上でpropsを入力して書き換えて、isLoginをtureにしてログインさせます。
isFetchingがfalseの必要もあるので変更します。
<img width="653" alt="スクリーンショット 2020-01-27 22.47.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530688/9fe07936-83c4-918f-7550-96743e43afb2.png">

作成中のページはお見せできないのですが、
無事にログイン状態となり、表示されるコンポーネントも増えました！

このようにReact Developer Tools上から
コンポーネント構造を視覚的に把握したり、
props,stateの値を確認したり、
ツール上で値を書き換えてテストやデバッグを効率的進めることができます。

Reactで開発をしていてまだ使っていないという方は是非使用してみてください。

最後まで読んで頂きありがとうございました！