Hooked.
← Hooked.
何度呼んでも、描き直しはまとめて1回になる

描き直しは軽くない処理。だからReactは、同時に起きた複数のsetStateをまとめて1回の描き直しに圧縮してくれる(バッチング)。

クリックした瞬間の値を、そのまま覚えてしまうことがある

両方のボタンを0.8秒以内に3回連打すると違いが分かる。「クリックした瞬間のcount」はそのボタンが表示されていた時点の値のまま固定される(クロージャ)。setCount(c => c + 1)のように関数で渡せば、実行される瞬間の最新値をReactが渡してくれる。