React の props を活用してコンポーネント間でデータを受け渡す方法を解説します。基本的な使い方から、デフォルト値の設定、関数の受け渡し、リストのレンダリングまで詳しく説明します。
React における props
は、コンポーネント間でデータを受け渡すための重要な仕組み です。
props
を使うことで、親コンポーネントから子コンポーネントへデータや関数を渡すことができます。これにより、再利用可能なコンポーネントを作成することができます。
本記事では、基本的な props
の使い方から、デフォルト値の設定、関数の受け渡し、リストのレンダリングなど詳しく解説します。
以下の例では、親コンポーネント App
から Greeting
コンポーネントへ props
を渡しています。
JSXfunction Greeting(props) { return <h1>こんにちは, {props.name} さん!</h1>; } function App() { return <Greeting name="太郎" />; } export default App;
✅ ポイント
props.name
を使って親から受け取った値を表示。<Greeting name="太郎" />
で name
というプロパティを渡す。props
はオブジェクトなので、分割代入(Destructuring Assignment) を使うことでコードを簡潔に書くことができます。
JSXfunction Greeting({ name }) { return <h1>こんにちは, {name} さん!</h1>; }
✅ メリット
props.name
ではなく、直接 { name }
と記述できるため、コードが短くなる。props
の値が渡されなかった場合に備えて、デフォルト値を設定 することができます。
JSXfunction Greeting({ name = "ゲスト" }) { return <h1>こんにちは, {name} さん!</h1>; }
✅ ポイント
name
に値が渡されない場合、デフォルト値 "ゲスト"
が適用される。props
には関数を渡すこともできます。
JSXfunction Button({ onClick }) { return <button onClick={onClick}>クリック</button>; } function App() { const handleClick = () => { alert("ボタンがクリックされました"); }; return <Button onClick={handleClick} />; }
✅ ポイント
onClick
を props
として渡し、ボタンがクリックされたときに親の関数を実行。配列データを props
として渡し、リストを動的に生成することも可能です。
JSXfunction UserList({ users }) { return ( <ul> {users.map((user, index) => ( <li key={index}>{user}</li> ))} </ul> ); } function App() { const users = ["太郎", "花子", "次郎"]; return <UserList users={users} />; }
✅ ポイント
map()
を使って配列の各要素をリストアイテムとしてレンダリング。key
プロパティを設定することで、React の再レンダリングの最適化をサポート。props
を適切に活用すると、コンポーネント間でのデータの受け渡しがスムーズになり、再利用性の高いコンポーネントを作成 できます。
✅ 学んだこと
props
を使うと 親コンポーネントから子コンポーネントへデータを渡せる。これらを活用し、より効率的な React 開発を行いましょう。
回 | タイトル | リンク |
---|---|---|
第 1 回 | useState を理解する | 詳 細 |
第 2 回 | useEffect を理解する | 詳 細 |
第 3 回 | useRef を理解する | 詳 細 |
第 4 回 | useMemo を理解する | 詳 細 |
第 5 回 | useRef を使って前回の値を保持する方法 | 詳 細 |
第 6 回 | useContext を理解する | 詳 細 |
第 7 回 | useReducer を理解する | 詳 細 |
第 8 回 | useState と useEffect を使ったフォームの作成 | 詳 細 |
第 9 回 | React における props の使い方 | この記事 |
第 10 回 | React におけるイベントハンドラー | 詳 細 |
当サイトの情報は、一般的な参考情報として提供しております。
正確な情報の掲載に努めておりますが、その内容の正確性・完全性・最新性を保証するものではありません。
記事の内容をご利用の際は、ご自身の責任において判断し、必要に応じて専門家にご相談ください。
当サイトの情報の利用により生じたいかなる損害についても、一切の責任を負いかねますのでご了承ください。
※ 本ページでは、著作権法に基づき、適正な引用の範囲内でコンテンツを紹介しています。
オリジナルの情報は発信元をご確認ください。
もし問題がありましたら、こちら からお問い合わせください。