React入門 練習問題 22:stateとpropsの違い
Reactにおけるstateとpropsの違いに関する説明として正しいものはどれか。
- stateは内部で管理・変更可能だが、propsは親から渡され子は直接書き換えられない
- stateは親から渡される値で、propsは内部でのみ生成される値である
- stateとpropsはどちらも子が自由に書き換えられる値である
- stateは一度設定すると変更できず、propsはいつでも自由に変更できる
- stateはグローバルな値を管理し、propsはローカルな値を管理する仕組みである
正解と解説を見る
正解:stateは内部で管理・変更可能だが、propsは親から渡され子は直接書き換えられない
stateとpropsはどちらもコンポーネントが扱うデータですが、管理の主体と変更可能性が異なります。stateはコンポーネント自身が内部で保持し変更できるのに対し、propsは親から受け取る読み取り専用のデータです。
【正解の理由】
stateはuseStateなどを使ってコンポーネント内部で定義・更新される値であり、propsは親コンポーネントから渡され、子コンポーネント側で直接変更することはできません。
【不正解の理由】
• 「stateは親から渡される値で、propsは内部でのみ生成される」:説明が逆になっている
• 「どちらも子が自由に書き換えられる」:propsは読み取り専用であり、子コンポーネントが直接書き換えることはできない
• 「stateは一度設定すると変更できず」:stateはsetStateなどの更新関数を通じて何度でも変更可能
• 「stateはグローバル、propsはローカル」:stateはそのコンポーネントに閉じたローカルな値であり、説明が誤っている