useCallback、何のためにあるか説明できる?
useCallbackが保つもの、useMemoとの関係、古い値を参照してしまう問題まで確認します。
この問題のねらい
useCallbackを「関数を速くするもの」ではなく、関数の参照を保つ仕組みとして説明できるかを確かめます。
はじめる前に
この問題では、すぐに正解は表示しません。まず自分の言葉で回答してみてください。
最後まで回答すると、問題とあなたの回答をまとめてコピーできます。普段使っているAIチャットに貼り付けると、理解度をチェックしてもらえます。
こんな問題が出ます
- Q1
useCallback は何をするフックですか? 「毎回新しく作られる関数」と比べて説明してください。
- Q2
useCallback(fn, deps) と useMemo を使って同じことを書くと、どうなりますか? 両者の関係を説明してください。
- Q3
useCallback を使うと効果があるのは、どんな場面ですか? 逆に、効果がない場面も挙げてください。
- Q4
次のコードでは、ボタンを何回押しても「現在の値: 0」と表示されます。 なぜでしょう? どう直せますか?
- Q5
次の説明の誤りを指摘してください。 「useCallback で包むと、関数がレンダーのたびに作り直されなくなるので、メモリも処理時間も節約できる」