【実務・中級編】 Compound ComponentsにおけるProps共有 – React実践ガイド

こんにちは。プロダクトの規模が膨らみ、コンポーネントがカオスになり始めた頃に誰もが直面するのが、「Propsのバケツリレー地獄」と「どこに何を書いたか分からない巨大コンポーネント」ですよね。

「親が持っている状態を、なぜか何階層も下の子に渡すために、中継地点のコンポーネントが意味のないPropsを垂れ流している……」
もし君のコードベースでそんな悲劇が起きていたら、それは設計を見直すサインです。

今回は、そんな絶望を華麗に解決するCompound Components(コンパウンド・コンポーネント)、そしてその裏側を支えるContext APIを活用したPropsの暗黙的共有について、実務の現場でそのまま使えるレベルの知見を叩き込みます。

—

なぜ普通のPropsの渡し方では限界が来るのか?

まずは現実を見ましょう。よくある「モーダル」や「タブメニュー」をただ愚直に実装しようとすると、こうなります。

// ⚠️ やってはいけないアンチパターン(Propsのバケツリレー)
},
{ id: ‘2’, label: ‘設定’, content: }
]}
/>

このアプローチの何がクソなのか?
コンポーネントの見た目(UI)とロジックがガチガチに結合し、少しデザインやレイアウトを変えたい(例えば、タブのヘッダーとコンテンツの間に別の要素を挟みたい)と思った瞬間に、親コンポーネントのインターフェースを破壊して大改修するハメになります。

ここで登場するのが Compound Components パターン です。
HTMLの `

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