ReactのProps

JS

React 18

ReactのPropsとは

プロパティを設定して関数定義で動的にすること。

プロパティを設定

colorとmessageの2つのプロパティを設定。

import { ColorfulBox } from "./components/ColofulBox";

export const App = () => {
  return (
    <>
      <ColorfulBox color="blue" message="青色です"/>
      <ColorfulBox color="green" message="緑色です"/>
    </>
  );
};

プロパティを関数で定義

プロパティを動的に使用できるように関数で定義します。

export const ColorfulBox = (props) => {
    const colorStyle = {
       color : props.color,
    };
  return <p style={colorStyle}>{props.message}</p>;
};

childrenを使用

作成したコンポーネント<ColorfulBox>に</ColorfulBox>をつけてコンテントをはさむようにします。

そうするとこのはさまれたコンテントをchildrenとして使用可能になります。

import { ColorfulBox } from "./components/ColorfullBox";

export const App = () => {
  return (
    <>
      <ColorfulBox color="blue">青です</ColorfulBox>
      <ColorfulBox color="green">緑です</ColorfulBox>
    </>
  );
};

よって、ColofullBoxコンポーネントはこうなります。

export const ColorfulBox = (props) => {
  const colorStyle = {
    color : props.color
  };
  return <p style={colorStyle}>{props.children}</p>;
};

分割代入を使用する場合

分割代入を使って書く場合は、こうなります。

props.color がcolorに

props.childrenがchildrenと書けます。

export const ColorfulBox = (props) => {
 const { color, children } = props;
  const colorStyle = {
    color: color
  };
  return <p style={colorStyle}>{children}</p>;
};

この分割代入をいきなり引数に書くこともできます。

下のコードだけを見ると分かりにくいですが、

上のコードが元だと分かれば理解しやすくなります。

export const ColorfulBox = ({ color, children }) => {
  const colorStyle = {
    color
  };
  return <p style={colorStyle}>{children}</p>;
};

colorはオブジェクトの省略記法で書いています。

分割代入やオブジェクトの省略記法についてはこちら↓をご覧ください。