Reactのコンポーネント志向とは?再利用性の高いUI設計を学ぶ
生徒
「Reactって、コンポーネント志向って聞いたんですけど、どういう意味ですか?」
先生
「Reactでは、アプリの画面を『部品(コンポーネント)』として分けて作るんです。」
生徒
「部品?パーツみたいなものですか?」
先生
「そうです!ボタンや入力欄などをパーツごとに作って、それを組み合わせて全体の画面を構成します。」
生徒
「なるほど、それがコンポーネント志向なんですね!」
先生
「では、具体的にどんな風にコードを書くか見てみましょう。」
1. コンポーネント志向とは何か?
React(リアクト)の基本概念として重要なのが「コンポーネント志向」です。コンポーネントとは、ユーザーインターフェース(UI)の一部分を部品として独立させたものです。たとえば、ボタン・見出し・入力フォームなどをそれぞれ1つのコンポーネントとして分けて作成します。
従来のウェブ開発では、1つのHTMLファイルの中にすべての表示要素が書かれていましたが、Reactでは小さな単位に分けて再利用できるようにします。これにより、UIが管理しやすくなり、修正や変更が楽になります。
2. コンポーネントのメリットとは?
Reactのコンポーネント志向の最大のメリットは、UIの再利用性です。たとえば「いいねボタン」を一度作れば、複数の場所で同じボタンを使い回すことができます。
また、コンポーネントは独立しているため、他の部分に影響を与えずに修正できます。これにより、大規模なウェブアプリでもメンテナンスがしやすくなります。
3. Reactのコンポーネントを作ってみよう
Reactでは関数のような形でコンポーネントを作成します。以下は「いいねボタン」コンポーネントを例にしたReactのサンプルコードです。
import React, { useState } from "react";
function LikeButton() {
const [count, setCount] = useState(0);
return (
<div>
<p>いいねの数: {count}</p>
<button onClick={() => setCount(count + 1)}>
いいね!
</button>
</div>
);
}
function App() {
return (
<div>
<h1>Reactのコンポーネント例</h1>
<LikeButton />
<LikeButton />
</div>
);
}
export default App;
4. JSXってなに?
Reactのコードの中にHTMLのようなタグが使われているのを見て、不思議に思った人もいるかもしれません。これは「JSX(ジェイエスエックス)」と呼ばれる記法で、JavaScriptの中にHTMLのような記述ができる機能です。
たとえば、<h1>こんにちは</h1>のようにタグを書けることで、見た目にも分かりやすく、UIを直感的に作ることができます。
5. 親コンポーネントと子コンポーネントの関係
Reactでは、コンポーネントの中に別のコンポーネントを入れることもできます。これを「親コンポーネント」「子コンポーネント」と呼びます。
たとえば、アプリ全体を管理するAppコンポーネントの中に、「ヘッダー」「メイン」「フッター」などの子コンポーネントを配置します。こうすることで、構造が明確になり、管理しやすくなります。
6. props(プロップス)とは?
子コンポーネントにデータを渡すための仕組みが「props(プロップス)」です。たとえば、「ボタンに表示するテキストを親から渡したい」といった場合に使います。
これはコンポーネント同士で情報をやりとりするための重要な機能です。初心者のうちは難しく感じるかもしれませんが、「親が子にメッセージを渡す」とイメージすると分かりやすいでしょう。
7. Reactのコンポーネント志向が現代開発に向いている理由
最近のウェブ開発では、スマホやタブレットなど画面サイズが多様化しています。Reactのコンポーネント志向は、こうした変化に対応しやすい作りになっています。
部品単位で開発できるため、デザイナーやプログラマーが分担しやすく、企業のチーム開発にも非常に向いています。さらに、似たUIを流用したり、共通パーツを共有できたりするので、効率よくアプリを作れるのです。
まとめ
Reactのコンポーネント志向は、現代のウェブ開発において非常に重要な考え方であり、画面を細かい部品として分割し再利用することで、効率的で管理しやすいUIを実現できます。ひとつひとつのコンポーネントが役割を持ち、独立して動作するため、修正や機能追加が簡単に行える点は、大規模な開発だけでなく個人の学習にも大きなメリットがあります。また、UIを分割することで構造が明確になり、複雑な画面でも見通しがよくなります。特にReactではJSXによってHTMLに近い直感的な表現で記述できるため、学習段階でも理解しやすく、画面の構成をイメージしながらコンポーネントを組み立てられる点が魅力です。 さらに、propsを利用した親コンポーネントから子コンポーネントへのデータの受け渡しは、アプリ全体の流れを理解するうえで欠かせない要素です。親から子へ、そして必要に応じて状態管理を行うことで、画面全体が連携して動作する仕組みが実現します。こうした部品の組み合わせはReactの特徴であり、画面に配置されるボタン・タイトル・リストなどを、それぞれ独立したコンポーネントとして整理し、組み合わせてひとつのアプリを構築できます。 特に再利用性の高いコンポーネント設計は、企業のプロジェクトや複数人での共同開発でも効果的に活用されます。同じデザイン・同じ挙動をもつUIを必要な場所に配置できることは、作業時間の短縮だけでなく、コードの品質保持にもつながります。Reactのコンポーネント志向は、設計力を磨くほどに扱いやすくなり、より短時間で安定した機能を持つアプリを構築する助けとなります。 以下に、まとめとして簡単なコンポーネント構成のサンプルコードを掲載します。記事中の記述に合わせて、タグや構造を統一した形で示しています。
サンプルプログラム:コンポーネントを組み合わせた画面例
function Title(props) {
return (
<h2 className="fw-bold fs-4">{props.text}</h2>
);
}
function InfoBox(props) {
return (
<div className="card p-3 mb-3">
<p>{props.message}</p>
</div>
);
}
function App() {
return (
<section className="mb-5">
<Title text="Reactのコンポーネント構成例" />
<InfoBox message="この画面は複数のコンポーネントを組み合わせて作られています。" />
<InfoBox message="同じ構造を持つ部品を再利用することで、統一感のあるUIになります。" />
</section>
);
}
生徒
「Reactのコンポーネントって、部品を集めて画面を作るイメージだったんですね。再利用できるのが便利でした。」
先生
「その通りです。コンポーネントを使うことで、同じUIを簡単にいろんな場所に配置できますし、修正もしやすくなるんですよ。」
生徒
「JSXもHTMLみたいでわかりやすかったです。タグを書くだけで画面が見えてきて、構造を理解しやすいですね。」
先生
「Reactは見た目とロジックを一緒に扱えるのが強みです。親コンポーネントからpropsで情報を渡す仕組みも、アプリの理解に役立ちますよ。」
生徒
「はい!実際にコンポーネントを作ってみたら、画面が組み立てブロックみたいでとても面白かったです!」
先生
「その感覚を大切にしてください。Reactは学べば学ぶほど扱いやすくなるので、これからもコンポーネントを意識しながら学習していきましょう。」