リリースされた、ステートやライフサイクルメソッドを持つコンポーネントをファンクションで作成するための仕組み。into(接続する)ための関数のこと。propsやHOCを使ってきたが、それらは下記の問題を抱えていた。これらの問題を全て解消する。コンポーネントをシンプルにするため今までは、componentDidMountといった一つのライフサイクルメソッドに、複数の無関係な処理(データ取得、何らかの初期化処理、その他)がごちゃまぜになっていた。これにより、コードが読みにくくなり、バグの温床にもなっていた。使うことにより、これらの処理を「ライフサイクルメソッドごと」ではなく、「関連する機能ごと」で関数に分割できる。クラスは変な癖があり、多くの初学者にとってハードルが高い。最適化をやりにくくなる。段階的な移行のススメクラスベースのコンポーネントを廃止する計画はない。書き直すことはせずに、新規コードから徐々に移行することをおすすめする。値を保持しているuseStateは、値と、値を更新するファンクションを返す。useStateには初期値を渡す。時には、useStateに渡した値(初期値)は単に無視される。this.setStateと異なり、値はオブジェクトでなくてもよい。this.setStateと異なり、オブジェクトをマージするような機能はない。「取得」する役割があるから。データの取得やサブスクリプションなどの処理のこと。一般的にはライフサイクルメソッドとして書かれる。propsを指定する。省略した場合は、renderのたびに毎回呼ばれる。空配列を指定した場合は、マウント時に1回だけ呼ばれる。つにまとめたものであるcomponentDidMountcomponentDidUpdatecomponentWillUnmountデフォルトではレンダリング後に毎回呼ばれる。componentDidMountとcomponentDidUpdateが一緒になっているようなもの。使う意味が薄れる)componentDidMountなどと異なり、useEffectはレンダリングをブロックしない。ブロックしたい場合は、類似品のuseLayoutEffectを使うこと。空配列([])を指定すると、初回マウント時にだけ実行される(componentDidMountと同じ動作になる)。これらの配列を明示的に渡さなくても、自動で最適化されるようになる予定らしい。作ることで、ロジックを再利用可能にすることができる。関する重複処理を排除するための、ただの慣習である。提供するロジック」を保持している。つのコンポーネントにあるisOnlineは完全に独立している。アニメーション、サブスクリプション、タイマー、ブラウザイベントなど、どんなものでも対象にできる。名前はuse****の形式でつけること。コールバックをメモ化して子コンポーネントに渡す時に使う。無駄な再描写を防ぐために使う。メモ化の機能を使いながら値を計算する。パフォーマンス最適化のために使う。同期版のuseEffectである。従来のcomponentDidMount等と同じ。