本記事の目的
今日はReactにおけるPropsを完全理解するために3ケースにおけるPropsの使い方を紹介していこうと思います。
Reactの導入に関しては今回割愛させていただきます。
CodePenというオンラインでReactのコードが動くツールがあるので、それを元に『どう動いているか』を体験していただけたらと思います。
本論
propsとは
propertiesの略称となっています。
Reactはコンポーネントと呼ばれる再利用できるタグを作成して、コード記述の効率化を図るのを理念にしています。
なぜ使用されるのか?
例えば以下のコードを見てください
const App = () => {
return (
<div>
<h1>Hello admin!</h1>
<h1>Hello general!</h1>
</div>
);
}
全体のうちの一部にはなりますが、h1タグで同じような内容をふたつ描画しています。
まだ2つですので、コード量も可愛いものです。
これが楽天やAmazonの商品リストだと思ってみてください。
多分記述量で手が死にます(笑)
このような冗長性を解消させるためのコンポーネントで、それを導入するのに使われるのがpropsというイメージです!
propsは親コンポーネントから子コンポーネントに渡されることを頭の片隅に置いておいてください。
後で説明します。
使用実例
公式ではfunctionを使用していますが、JSX記法を使用しているだけですので、本質は変わりません。
変数を渡す場合
See the Pen React_props_type1 by atsushiIMG (@atsushiimg) on CodePen.
propsの使用方法としては、
- 子コンポーネントであるHelloの引数にprops(※1)を持たせ、どのキーワードでそれを子コンポーネント上で呼び出すかを決める。(例だとuserというキーワードです)
- Appコンポーネントの中でHelloコンポーネントを呼び出す。その際にHelloコンポーネントのタグにpropsで渡したい変数や文字列を入力
これによりpropsで受け取った内容を描画しています
※1→命名自体は正直なんでもいいです。しかし、皆がpropsというキーワードを使っているので、他の人にコードをみてもらっても理解できるようにpropsで命名することをお勧めします!
オブジェクトを渡す場合
See the Pen React_props_type2 by atsushiIMG (@atsushiimg) on CodePen.
上記のように変数だけでなく、オブジェクトも渡すことができます!
子コンポーネントのイベントを利用したい時
こちらは子コンポーネントのbuttonタグのイベントメソッドを利用したい例です。
今回はonClickメソッドを使用しています。
Helloタグ内のpropsに渡すメソッドの記述方法に注意が必要です!
必ずアロー関数を用いた記述方法を使用してください。
その記述でないと動作しません。
理由としてはHelloコンポーネントが定義される前にsetNumberが呼び出されてしまい、エラーが出るからです。
Reactはこの辺が扱える分、理解が難しいです。
私も細々とは把握していないのです…
See the Pen React_props_type3 by atsushiIMG (@atsushiimg) on CodePen.
まとめ
今回はReactのPropsに関して簡単な説明と使用例をいくつか示しました。
コードを見るだけでなく、実際に手を動かして動作を理解していただけると幸いです。
他の使用例が見つかったら、追記していこうと思います。
終わり
コメント