カテゴリ: React 更新日: 2026/03/13

ReactでUIライブラリ的に使える共通コンポーネント集を作ろう!初心者でもわかる設計の考え方

UIライブラリ的に利用できる共通コンポーネント集の作り方
UIライブラリ的に利用できる共通コンポーネント集の作り方

先生と生徒の会話形式で理解しよう

生徒

「Reactで画面を作っていると、同じボタンや見た目を何度も書いてしまいます…」

先生

「それはよくある悩みですね。Reactでは、UIライブラリのように共通部品をまとめて使えます。」

生徒

「UIライブラリって、自分でも作れるんですか?」

先生

「はい。まずは小さな共通コンポーネント集を作るところから始めましょう。」

1. UIライブラリ的な共通コンポーネントとは

1. UIライブラリ的な共通コンポーネントとは
1. UIライブラリ的な共通コンポーネントとは

UIライブラリとは、画面の部品をまとめたセットのことです。 ボタンや入力欄、カード表示など、よく使う見た目と動きを部品として用意します。 Reactでは、これらをコンポーネントとして作ります。 市販の家具を使う感覚で、画面を組み立てられるのが特徴です。 初心者のうちは、まず自分用の小さな部品集を作るのがおすすめです。

2. 共通コンポーネントを作るメリット

2. 共通コンポーネントを作るメリット
2. 共通コンポーネントを作るメリット

共通コンポーネントを作る最大の利点は、同じコードを何度も書かなくてよい点です。 見た目を変更したい場合も、一か所直すだけで全画面に反映されます。 これは、学校の制服を全員で着るようなイメージです。 デザインが統一され、画面全体が整って見えます。 バグも減り、管理がとても楽になります。

3. まずはシンプルなButtonコンポーネントを作る

3. まずはシンプルなButtonコンポーネントを作る
3. まずはシンプルなButtonコンポーネントを作る

最初に作りやすいのが、ボタンの共通コンポーネントです。 表示する文字と、クリック時の処理を外から受け取る形にします。 これにより、どの画面でも同じボタンを使い回せます。 Reactのpropsという仕組みを使って、外から情報を渡します。


function Button({ label, onClick }) {
  return (
    <button onClick={onClick}>
      {label}
    </button>
  );
}

export default Button;

4. 共通Buttonを画面で使ってみる

4. 共通Buttonを画面で使ってみる
4. 共通Buttonを画面で使ってみる

作成したButtonコンポーネントは、他のコンポーネントから呼び出します。 表示する文字だけを変えれば、同じ見た目のボタンが簡単に増やせます。 これは、同じ型のスタンプで文字だけ変えるような感覚です。 UIライブラリ的な使い方の第一歩です。


import Button from "./Button";

function App() {
  return (
    <div>
      <Button label="送信" onClick={() => alert("送信しました")} />
      <Button label="キャンセル" onClick={() => alert("中止しました")} />
    </div>
  );
}

export default App;
(同じ見た目のボタンが2つ表示され、それぞれクリックするとメッセージが変わります)

5. CardやBoxなど見た目用コンポーネントを作る

5. CardやBoxなど見た目用コンポーネントを作る
5. CardやBoxなど見た目用コンポーネントを作る

次に、枠や背景を持つコンポーネントを作ります。 中身を自由に入れられるようにするのがポイントです。 Reactではchildrenという仕組みを使うことで、箱の中に好きな要素を入れられます。 これは、お弁当箱の中におかずを詰めるイメージです。


function Card({ children }) {
  return (
    <div style={{ border: "1px solid #ccc", padding: "16px" }}>
      {children}
    </div>
  );
}

export default Card;

6. 共通コンポーネントをまとめるフォルダ構成

6. 共通コンポーネントをまとめるフォルダ構成
6. 共通コンポーネントをまとめるフォルダ構成

共通コンポーネントが増えてきたら、専用のフォルダにまとめます。 例えば、components/uiのような場所に置くと分かりやすくなります。 Button、Card、Inputなどを同じ場所に置くことで、UIライブラリらしくなります。 整理整頓された引き出しのように、必要な部品をすぐ取り出せます。

7. 共通コンポーネント設計で意識するポイント

7. 共通コンポーネント設計で意識するポイント
7. 共通コンポーネント設計で意識するポイント

共通化するときは、特定の画面専用にならないよう注意します。 文字や処理は、できるだけ外から渡す形にします。 見た目だけを担当し、細かい動きは使う側に任せると再利用しやすくなります。 これは、家電のリモコンがどの部屋でも使えるように作られているのと同じです。

8. UIライブラリ的コンポーネント集を育てていく考え方

8. UIライブラリ的コンポーネント集を育てていく考え方
8. UIライブラリ的コンポーネント集を育てていく考え方

最初から完璧なUIライブラリを作る必要はありません。 画面を作りながら、よく使う部品を少しずつ追加していきます。 共通コンポーネント集は、使いながら育てるものです。 Reactのコンポーネント分割に慣れることで、自然と設計力も身についていきます。

カテゴリの一覧へ
新着記事
New1
React
ReactでuseStateを使ったオブジェクト・配列の扱い方完全ガイド!初心者でもわかるReactフック
New2
React
ReactでUIライブラリ的に使える共通コンポーネント集を作ろう!初心者でもわかる設計の考え方
New3
React
ReactのPropsの使い方を完全ガイド!初心者でもわかる関数を渡して子から親にイベント通知する方法
New4
React
Reactの環境構築とは?初心者でもできるセットアップ手順まとめ
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.3
Java&Spring記事人気No3
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.4
Java&Spring記事人気No4
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.5
Java&Spring記事人気No5
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.6
Java&Spring記事人気No6
React
Reactのカードコンポーネントを汎用的に設計する方法!初心者でもわかる再利用の考え方
No.7
Java&Spring記事人気No7
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.8
Java&Spring記事人気No8
React
ReactでAxiosローディング状態を管理する方法を完全ガイド!初心者でもわかる非同期通信の基本