componentWillReceiveProps が今は legacy になっているのを知らずに使っていてびっくりしたので、https://reactjs.org/docs/react-component.html から知らなかった部分をメモ
はい
shouldComponentUpdate() が false を返すときは発火しない
super(props);は忘れないように
this.state の初期化とイベントハンドラーの bind に使いましょう
props をそのまま state にするのはバグるのでやってはいけない
初期時に起こす副作用を書く。データを引っ張ってくるとか。
なんか設定を加えたときは componentWillUnmount() で戻すのを忘れないように
prevProps, prevState, snapshot を引数に取ります。もちろん省いてもよい
propsやstateの変化時に起こす副作用を書く。今はpropsの変化に対応する動作は componentWillReceiveProps ではなくこれを使う
shouldComponentUpdate() が false を返すときは発火しない
snapshot とかいうのはレアなのでよく知らなくてよさそう
Component が消えた時
render() や componentDidUpdate() を起こさせない
レアなので知らなくてよさそうな雰囲気がある
DOMが変化を起こす前に、起こす前の情報を何らかの形で保持したいときに使うっぽいが、あまり使わなさそうなもの。ドキュメンテーションには例としてスクロール位置が挙げられている
知りたくなったら https://reactjs.org/blog/2017/07/26/error-handling-in-react-16.html や https://reactjs.org/docs/react-component.html#error-boundaries を読みましょう
はい
re-render をどうしてもすぐ起こさせたいとき
Componentの中に値が直接書かれていない時のデフォルトのpropsの値を決められる。便利そう