【React.js/Next.js】React コンポーネント ・Props 完全入門

React.js / Next.js

コンポーネント・Props って、どんな機能があるのかな?

今回は、React.js で UIを再利用可能な小さな部品に分けて作る仕組みコンポーネントProps を使ったデータの受け渡し について解説します。

React.js の環境構築がまだの場合は、下記より環境構築を行なってください。

コンポーネント とは?

コンポーネント(Component)とは、UIを再利用可能な小さな部品に分けて作る仕組みのことです。
React.js では、Webページのヘッダーやボタン、リストなどのUIをそれぞれ 独立した部品(Component)として作成する ことができます。

コンポーネントの作成イメージ(階層図)

例えば、App コンポーネントの中に HeaderMain などのコンポーネントを配置し、さらにその中に Card Button などの 小さなコンポーネントを組み合わせて画面を作成 します。

なぜ コンポーネント を使うの?(メリット)

コンポーネント を利用すると、次のような メリット があります。

1. 再利用できる(再利用性: Reusability)

ヘッダーボタンカード など、一度作成したコンポーネントは何度も使うことができる ため、
同じコードを何度も書く必要がなくなり、コード量を減らす ことができます。

2. コードを整理できる(可読性: Readability)

UIを小さな部品(コンポーネント)に分割する ことで、コードを整理することができます。
その結果、コードの構造が分かりやすくなり、可読性も向上 します。

3. 保守がしやすい(保守性: Maintainability)

例えばボタンのデザインを変更したい場合、Buttonコンポーネントだけ修正すれば、
そのコンポーネントを使用しているすべてのページに変更が反映されます。
そのため、バグの修正やデザインの変更も簡単に行う ことができ、保守性が高まります

コンポーネント と Props の基本的な使い方(コード例)

それでは、ここから実際に コンポーネントProps基本的な使い方 について見ていきましょう

コンポーネントの作成

React.js では、作成したコンポーネントを <コンポーネント名 /> のようにタグ形式で呼び出すことで、画面に表示することができます。

Props とは?(コンポーネントに値を渡す)

React.js では、Props を使って コンポーネントにデータを渡す ことができます。
Props を利用することで、同じコンポーネントでも渡す値によって表示内容を変えることができます。

Props の 基本的な使い方

Props の分割代入

Props でコンポーネントに渡された値は、JavaScript分割代入 を使って受け取ることもできます。分割代入 を使うと、props.name のように書く必要がなくなり、コードがよりシンプルになります。

複数の Props の分割代入

複数の Props を渡す場合 も、同じように 分割代入 を使って受け取ることができます。

子要素(children)

Props を使って、子要素(children)を渡して受け取ることができます
渡された 子要素(children)は、コンポーネント内で自由に表示することが可能です。

まとめ

今回は、コンポーネントProps について解説してきましたが、いかがでしたでしょうか?

React.jsコンポーネント は、UIを再利用可能な小さな部品に分けて作る仕組み で、コンポーネント分割 して作ることで、コードが整理 しやすくなり、可読性や保守性も向上 します。
また Props を使うことで、コンポーネントにデータを渡す ことができ、さらに JavaScript分割代入 を使うことで、コードをよりシンプルに書くことができます。

まずは コンポーネントProps の基本的な使い方をしっかり押さえ、小さな部品(コンポーネント)を組み合わせながら、React.js の理解をより深めていきましょう。

公式サイト

React コンポーネント

初めてのコンポーネント – React
The library for web and native user interfaces

React Props

コンポーネントに props を渡す – React
The library for web and native user interfaces
tachu × tachu

Laravel / React フルスタックエンジニア

Webエンジニア歴15年、フリーランス歴8年で、PHP / Laravel を中心に、
React.js / Vue.js を用いたフルスタックでのWeb開発をしています。

技術記事は Laravel / React / Web開発 を中心に書いています。

Webサービスの開発、既存システム改善、機能追加、技術相談、小規模な開発など、お気軽にご相談ください。

React.js / Next.js
シェアする

コメント

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