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の値を決められる。便利そう