React は通常、仮想 DOM を通じて DOM を操作することを目的としています。しかし、実際の DOM がレンダリングされた後に何らかの操作を加えたい場合もあります。例えば、昔ながらの jQuery のように直接 DOM にアクセスして、特定のアニメーションやスクロール位置を設定するケースなどです
今回は、レンダリング後の DOM の状態を保証しながら操作を行いたい際に役立つ、React の flushSync 機能を紹介します
解説
公式ドキュメント によると、flushSync は、その中で実行される処理後に DOM を強制的に再レンダリングする関数です。一般的な使い方は setState 関数と組み合わせ、状態更新後の DOM の再描画を保証し、次の処理に移行する際に利用します。この機能は、アニメーションの開始時点で最新の DOM 状態を確保したい場合にも便利です