コンポーネントの基礎
知識課題
知識課題1
コンポーネントとは何かを、Reactの文脈で説明してください。- 再利用性の高い
コンポーネントの特徴を調査し、再利用性を高めるための具体的な工夫やポイントをまとめてください。 - 逆に、再利用が難しい
コンポーネントの特徴や問題点について考察してください。
知識課題2
JSXとは何かを説明してください。JSXにおいて波括弧{}が果たす役割を調査し、具体的な使用例をコードとともに分かりやすく解説してください。
知識課題3
- コンポーネントにおける
propsの役割を説明してください。 - 特に
childrenという特殊なpropsの意味と用途を調べ、実践的なコード例と共に説明してください。
知識課題4
- Reactで
条件分岐(条件付きレンダー)を行う一般的な方法を複数調査し、それぞれのコード例を挙げて分かりやすく解説してください。
実践課題
以下の実践課題は、すでにViteを用いてReactプロジェクトを作成している前提で進めてください。
実践課題1
Greeting.jsxというコンポーネントを作成してください。- シンプルな機能で構いません。例えば、画面に
<h1>Hello, React!</h1>と表示するだけでも十分です。 - 作成したコンポーネントを
App.jsxで呼び出し、画面に表示されることを確認してください。
実践課題2
Greetingコンポーネントがpropsでnameを受け取れるよう修正してください。App.jsxで<Greeting name="Anthea" />と呼び出し、Hello, Anthea!と表示されることを確認してください。- 他の名前(例:
<Greeting name="Antheia" />)でも正しく表示されることを確認しましょう。
実践課題3
- 新たに
Layout.jsxを作成します。 Layoutコンポーネントは、受け取ったchildrenをラップ(囲む)して表示するだけのシンプルな構造にしてください。
以下のように、App.jsx内でLayoutを使用し、挙動を確認してください。
jsx
<Layout>
<h2>Welcome!</h2>
<p>This is a sample page.</p>
</Layout>また、次のようにGreetingコンポーネントをLayoutの中に配置し、表示を確認しましょう。
jsx
<Layout>
<Greeting name="Anthea" />
<Greeting name="Antheia" />
</Layout>実践課題4
- 新たに
UserInfo.jsxコンポーネントを作成してください。 - このコンポーネントは
propsで真偽値(isLoggedIn)を受け取り、ログインの状態に応じて表示を切り替えます。- ログイン時:「ログイン済みです。ようこそ!」
- 非ログイン時:「ログインしていません。ログインしてください。」
App.jsxで<UserInfo isLoggedIn={true} />や<UserInfo isLoggedIn={false} />のように切り替えて表示が変わることを確認してください。- 余裕があれば、
if-elseだけでなく、三項演算子 (? :)や論理AND (&&)を用いた方法にもチャレンジしてみましょう。