forced synchronous layout
レイアウトで凝ったことやると起こる
細かい事はよくわかってない
ブラウザに表示されたwebページのあるDOMの大きさ(幅や高さ)を取得する時に
ある部分の大きさが、他の要素の大きさに影響される事がある
document.body.clientWidth
とか
中身を全部レンダリングしなければ、bodyの大きさは確定しない
document.body.clientWidth
の値を使って表示サイズを決定する部品があった場合
ブラウザはどうなるか?
そこの処理をスキップして、仮にDOMをレンダリングして document.body.clientWidth
を作ってから戻ってくるらしい?
すごい大変そう
デザイン上しょうがない
しかし、重いのでなるべく「仮レンダリングして元の位置に戻ってくる」回数を減らしたい
子コンポーネントが、親コンポーネントのサイズを見て大きさを変える場合等にも発生する
画面が固まる
みたいな感じ?
末端の方のコンポーネントから、上の方のサイズを参照したりすると固まる
他にもありそう
こんな感じでcacheすると回避できる
jslet clientWidth // cache
window.addEventListener('resize', () => clientWidth = document.body.clientWidth)