【動かして試せます】Reactにおけるpropsで変数や関数を渡す方法

React
 

本記事の目的

今日は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の使用方法としては、

  1. 子コンポーネントであるHelloの引数にprops(※1)を持たせ、どのキーワードでそれを子コンポーネント上で呼び出すかを決める。(例だとuserというキーワードです)
  2. 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に関して簡単な説明と使用例をいくつか示しました。

コードを見るだけでなく、実際に手を動かして動作を理解していただけると幸いです。

他の使用例が見つかったら、追記していこうと思います。

終わり

コメント

タイトルとURLをコピーしました