Qraft(クラフト) 資格・学習クイズアプリ

React入門 練習問題 43:フック:useReducerの用途

Reactにおいて、`useState`ではなく`useReducer`フックを使用する方が適しているとされる一般的なケースとして正しいものはどれか。

  1. 単純な真偽値や文字列など、単一のプリミティブな値を管理する場合。
  2. コンポーネントのライフサイクルイベントを細かく制御したい場合。
  3. 複数の状態が複雑に絡み合うロジックや、次の状態が前の状態に依存する場合。
  4. DOM要素のサイズやスクロール位置など、レイアウト情報を直接取得する場合。
  5. 親コンポーネントを経由せずに、深くネストされた子孫へ値を渡す場合。

Qraftユーザーの成績:難易度 Cランク(レーティング1183)・正答率 58%(7/12回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

正解と解説を見る
正解:複数の状態が複雑に絡み合うロジックや、次の状態が前の状態に依存する場合。

正解は、複数の状態が複雑に絡み合うロジックや、次の状態が前の状態に依存する場合、です。

【正解の理由】
`useReducer`は状態更新のロジックをコンポーネントの外部に切り出すことができるフックです。Stateが複数のサブ値を持っている場合や、前の状態に基づいて次の状態を計算するような複雑な状態管理において、`useState`よりもコードの見通しが良くなり適しています。

【不正解の理由】
• 「単純な真偽値や文字列など、単一のプリミティブな値を管理する場合」は誤り。このようなシンプルな場合は`useState`が適しています。
• 「コンポーネントのライフサイクルイベントを細かく制御したい場合」は誤り。ライフサイクルの制御には`useEffect`などを使用します。
• 「DOM要素のサイズやスクロール位置など、レイアウト情報を直接取得する場合」は誤り。DOMの参照には`useRef`を、レイアウトの同期には`useLayoutEffect`を使います。
• 「親コンポーネントを経由せずに、深くネストされた子孫へ値を渡す場合」は誤り。これはContext APIの役割です。

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)