ReactJS - プロパティ(props):初級者向けガイド

こんにちは、将来のReact開発者さんたち!今日は、Reactの最も基本的な概念の一つであるプロパティ、または私たちが愛称で呼ぶ「props」について深く掘り下げます。プログラミングが初めての方でも安心してください。私はこれまでに多くの生徒を指導してきましたので、ステップバイステップで案内します。一緒にこのエキサイティングな旅に出発しましょう!

ReactJS - Properties (props)

Propsとは?

コードに飛び込む前に、propsとは何かを理解しましょう。あなたが家(Reactアプリケーション)を建てていると仮定しましょう。propsは、各部屋(コンポーネント)がどのように見えるべきか、何を含むべきかを示す設計図のようなものです。親コンポーネントから子コンポーネントにデータを渡す方法です。

Propsの使用法

簡単な例から始めましょう。パーソナライズされたメッセージを表示するGreetingコンポーネントを作成します。

function Greeting(props) {
return <h1>Hello, {props.name}!</h1>;
}

function App() {
return (
<div>
<Greeting name="Alice" />
<Greeting name="Bob" />
</div>
);
}

この例では、nameGreetingコンポーネントに渡されるプロパティです。以下に分解します:

  1. Greetingコンポーネントを定義し、propsオブジェクトを期待します。
  2. Greeting内でprops.nameを使用してnameプロパティにアクセスします。
  3. Appコンポーネント内で2回Greetingを使用し、異なるnameプロパティを渡します。

このコードを実行すると、「Hello, Alice!」と「Hello, Bob!」の2つの挨拶が表示されます。

複数のPropsを渡す

Propsは文字列に限りません。Greetingコンポーネントに更多信息を追加してみましょう:

function Greeting(props) {
return (
<div>
<h1>Hello, {props.name}!</h1>
<p>Age: {props.age}</p>
<p>Favorite Color: {props.color}</p>
</div>
);
}

function App() {
return (
<div>
<Greeting name="Alice" age={28} color="blue" />
<Greeting name="Bob" age={32} color="green" />
</div>
);
}

今度は3つのプロパティを渡しています:nameagecolorageプロパティにカッコを使用していることに注意してください。これは、数値を渡しているためです。

デフォルトのProps

時々、プロパティが提供されていない場合にフォールバック値を持っていたい場合があります。その際にデフォルトのpropsが役立ちます。Greetingコンポーネントにデフォルトの年齢を追加してみましょう:

function Greeting(props) {
return (
<div>
<h1>Hello, {props.name}!</h1>
<p>Age: {props.age}</p>
</div>
);
}

Greeting.defaultProps = {
age: 25
};

function App() {
return (
<div>
<Greeting name="Alice" age={28} />
<Greeting name="Bob" />
</div>
);
}

この例では、ageプロパティを提供しない場合(Bobの場合)、デフォルトで25歳になります。

PropsとStateの比較

propsを理解したら、もう一つの重要なReact概念であるstateと比較してみましょう。以下に簡単な比較を示します:

Props State
親から子に渡される コンポーネント内で管理される
読み取り専用 変更可能
コンポーネント間の通信を助ける コンポーネントを動的する

これを簡単なカウンターコンポーネントで確認してみましょう:

import React, { useState } from 'react';

function Counter(props) {
const [count, setCount] = useState(props.initialCount);

return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
}

function App() {
return (
<div>
<Counter initialCount={0} />
<Counter initialCount={10} />
</div>
);
}

この例では:

  • initialCountはプロパティです。AppからCounterに渡され、変更されません。
  • countはstateです。initialCountの値で初期化されますが、setCount関数で変更できます。

結論

PropsはReactの基本であり、柔軟で再利用可能なコンポーネントを作成するために不可欠です。Propsは、あなたのReactレシピをユニークで美味しいものにする秘密の材料です!

次の点を覚えておいてください:

  1. Propsは親から子に流れます。
  2. 読み取り専用です。propsを直接変更しないでください!
  3. デフォルトのpropsを使用してフォールバック値を設定します。
  4. Propsはデータを渡すためのもので、stateはデータを管理するためのものです。

Reactの旅を続ける中で、propsをますます複雑で興味深い方法で使用することになります。でも心配しないでください。練習を重ねることで、自然と身につきます。自転車に乗るのと同じで、一度身につくと忘れられません!

codingを続け、学び続け、そして何より楽しみましょう!Reactは素晴らしいライブラリであり、あなたがその全てを発見することを楽しみにしています。次回まで、happy React-ing!

Credits: Image by storyset