React Hooks
でかい context は作らずに分割していく
memo せずラフに使っても再描画周辺で負担にならなくなるとかが実利としてある
再描画を要さない情報については useState でなく useRef にしていくべき
useState + memo でも悪くはなさそうだが
なお useRef はまさに class component で言う所の instance variable に相当
当たり前だが Hooks にアクセスしたいと思ったらそれも Hooks にするということになる
データ取得・それを保存とかいうのはそれをまとめて全て Hooks 化される
Redux の場合 connect により presentational component と依存性の注入が明確に分離されていたが Hooks を普通に使う分にはそれを強制されない。
全く同じように props のみに依存する component を切り出していくスタイルは有り得る
また、切り分ける一つの基準として外部へ依存しないという意味で useContext を内部で使う component は smart, そうでない component は presentational であるとしてある程度分けるというのはありそう?とすると外部 API コール等が useEffect で起きていてもそれがその component に閉じていたら presentational となるが.. ただ useEffect の使用の有無での判断はやりづらそう
useEffect により、今までライフサイクルの進行方向に対して垂直に捉えていたものが複数の平行に捉えられるようになった
今までは単一の componentDidMount や componentWillUnmount という切り口のみがあったが、今は一つの useEffect でそれら相当の hook を持つことができて、いくつでも使えるということ
subscription や timeoutID 等、破棄するタイミングで保持しておきたいものはライフサイクルを通して持たなくてはならなかったが、一つの useEffect に閉じ込めることができるようになり、切り離すこともできるようになる