← inaro.devAI駆動開発 学習ツール
中級

コンポーネント分割の設計

なぜ学ぶか: AIに画面を作らせると、1ファイル500行の巨大コンポーネントが生まれることがあります。動くけれど、読めない・直せない。「どう割るか」の基準を持つと、AIに的確な分割を指示できます。まずは良い分割の例から。

まずはこの例を見てみましょう

// 部品①: 「1行の表示」だけを担当
function PostItem({ post }: { post: Post }) {
  return <li>{post.title}</li>;
}

// 部品②: 「一覧」を担当(0件の場合も含めて)
function PostList({ posts }: { posts: Post[] }) {
  if (posts.length === 0) return <p>まだ投稿がありません</p>;
  return (
    <ul>
      {posts.map((p) => <PostItem key={p.id} post={p} />)}
    </ul>
  );
}

PostList(一覧の係)→ PostItem(1行の係)。名前がそのまま役割の説明になっています。

分割の基準は「役割」

例のように「一覧の係」「1行の係」と役割で切ります。行数は目安にすぎません(150行を超えたら検討、くらい)。

名前が付けやすい分割は良い分割

UserCard・SearchFormのように自然な名前が付くならOK。名前に困る部品は、切り方が違うサインです。

AIへの分割指示のコツ

「一覧と1行に分けて。データの取得は親に残して」— 役割・境界・stateの置き場所の3点を伝えると、分割の質が上がります。

分割しすぎも毒

1回しか使わない小さな部品を無数に作ると、逆に追いにくくなります。「読みやすくなるか」が唯一の基準です。

ステップ 1 / 3

※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。