Webコンポーネント入門

HTML + CSS + JavaScript + PHPで理解する再利用可能UI

Webコンポーネントとは?

Webコンポーネントとは、ブラウザ標準だけで使えるUI部品技術です。
フレームワークに依存せず、HTML・CSS・JavaScriptのみで 「再利用できる部品」を作れます。

Webコンポーネントを構成する4要素

1. Custom Elements

独自のHTMLタグを定義します。

2. Shadow DOM

スタイルと構造をカプセル化します。

3. HTML Templates

再利用できるDOM構造を定義します。

4. ES Modules

JavaScriptとして部品を管理します。

最小構成のWebコンポーネント


class MyCard extends HTMLElement {
  constructor() {
    super();
    const shadow = this.attachShadow({ mode: "open" });
    shadow.innerHTML = `
      <style>
        .card {
          padding: 16px;
          border-radius: 10px;
          background: #2b2b5f;
        }
      </style>
      <div class="card">
        <slot></slot>
      </div>
    `;
  }
}
customElements.define("my-card", MyCard);

実際に使ってみる

これはWebコンポーネントで作られたカードです。

PHPとWebコンポーネントの関係

PHPはWebコンポーネントを「作る」ためではなく、 次の役割で活躍します。


<my-card>
  <?= htmlspecialchars($message) ?>
</my-card>

表示や振る舞いはJavaScript、
データと構造はPHP、という分業が非常に相性が良いです。

Webコンポーネントが向いている場面

まとめ

Webコンポーネントは、Web 1.0〜4.0 を横断できる標準技術です。
HTML・CSS・JavaScript・PHPという基本構成のまま、 長く使えるUI設計が可能になります。