Reactのコンポーネント間で、データの受け渡しをする際に使用するpropsについて簡単に使ってみます。
サンプルコード
親コンポーネントをParent.jsx、子コンポーネントをChild.jsxとして試してみます。
まずは実装前のParent.jsxです。
import Child from './Child.jsx'
export default function Parent() {
  return (
    <div className="parent">
      <p>Parent</p>
      <Child />
    </div>
  )
}
Child.jsxの内容は以下の通りです。
export default function Child() {
  return (
    <div className="child">
      <p>Child</p>
    </div>
  )
}
結果は、以下のような出力になります。
<div class="parent">
  <p>Parent</p>
  <div class="child">
    <p>Child</p>
  </div>
</div>
次にpropsを試してみます。
ParsonからChildにpersonとunitを渡すようにしてみます。
import Child from './Child.jsx'
export default function Parent() {
  return (
    <div className="parent">
      <p>Parent</p>
      <Child
        person={{ name: 'Roko', age: 18 }}
        unit={'Idios'}
      />
    </div>
  )
}
Childでは渡されたpersonとunitを表示するようにします。
export default function Child({ person, unit }) {
  return (
    <div className="child">
      <p>Child</p>
      <p>
      {person?.name}({person?.age})<br/>
      ユニット:{unit}
      </p>
    </div>
  )
}
これでParsonからChildに渡された値の出力を確認できました。
<div class="parent">
  <p>Parent</p>
  <div class="child">
    <p>Child</p>
    <p>Roko(18)<br>ユニット:Idios</p>
  </div>
</div>
propsにはデフォルト値を設定することもできます。
Childの方でunitに対してデフォルト値を設定してみます。
export default function Child({ person, unit = 'Idios' }) {
  return (
    <div className="child">
      <p>Child</p>
      <p>
      {person?.name}({person?.age})<br/>
      ユニット:{unit}
      </p>
    </div>
  )
}
unitの値を渡さないで使ってみます。
import Child from './Child.jsx'
export default function Parent() {
  return (
    <div className="parent">
      <p>Parent</p>
      <Child
        person={{ name: 'Roko', age: 18 }}
        unit={'Idios'}
      />
      <Child
        person={{ name: 'Rika', age: 20.2 }}
      />
    </div>
  )
}
unitのデフォルト値での出力が確認できました。
<div class="parent">
  <p>Parent</p>
  <div class="child">
    <p>Child</p>
    <p>Roko(18)<br>ユニット:Idios</p>
  </div>
  <div class="child">
    <p>Child</p>
    <p>Rika(20.2)<br>ユニット:Idios</p>
  </div>
</div>
注意点として、今回のような未設定の場合や値がundefinedの場合はデフォルト値が使われますが、nullや0の場合はデフォルト値は使われないようです。
最後にpropsの中のchildrenというプロパティを試してみます。
以下のようにChildを終了タグ付きにしてコンテンツをネストした際に、propsのchildrenプロパティで受け取ることができます。
import Child from './Child.jsx'
export default function Parent() {
  return (
    <div className="parent">
      <p>Parent</p>
      <Child
        person={{ name: 'Roko', age: 18 }}
        unit={'Idios'}
      />
      <Child
        person={{ name: 'Rika', age: 20.2 }}
      />
      <Child
        person={{ name: 'Ruri', age: 20 }}
        unit={'みたらし団'}
      >
        <p>chirdrenで受け取る内容</p>
      </Child>
    </div>
  )
}
Childにchildrenの表示を追加します。
export default function Child({ person, unit = 'Idios', children }) {
  return (
    <div className="child">
      <p>Child</p>
      <p>
      {person?.name}({person?.age})<br/>
      ユニット:{unit}
      </p>
      {children}
    </div>
  )
}
これでネストした部分の出力が確認できました。
<div class="parent">
  <p>Parent</p>
  <div class="child">
    <p>Child</p>
    <p>Roko(18)<br>ユニット:Idios</p>
  </div>
  <div class="child">
    <p>Child</p>
    <p>Rika(20.2)<br>ユニット:Idios</p>
  </div>
  <div class="child">
    <p>Child</p>
    <p>Ruri(20)<br>ユニット:みたらし団</p>
    <p>chirdrenで受け取る内容</p>
  </div>
</div>
今回はpタグを囲う形にしましたが、別のコンポーネントなどを囲って渡したりすることも可能です。
コメントが承認されるまで時間がかかります。