コンポーネント分割の設計
なぜ学ぶか: 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が生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。