<component> 動的コンポーネント
最終更新:2026-10-22
<component> 動的コンポーネント
| グループ | ビルトイン |
|---|---|
| 種類 | コンポーネント・要素 |
| スコープ | テンプレート |
| Vue バージョン | 3.0+ |
| SSR 対応 | 対応 |
📝 構文
<component :is="currentView"></component>
<!-- ネイティブタグも描画できる -->
<component is="h3">動的タグ</component>
⚙️ 引数
| props | is(コンポーネント名、コンポーネント定義オブジェクト、またはネイティブタグ名の文字列) |
|---|
▶ 例
以下のコードを編集して結果を確認しましょう:
出力:
Clicking switches between 'Component A' and 'Component B'.
💡 ポイント
💡 ヒント よくある形:タブの切り替え、型に応じた異なるフォームフィールドの描画。
ℹ️ 補足 切り替えると旧コンポーネントは破棄されます(状態が失われます)。状態を残したいときは で包んでください。
⚠️ 注意 is の値が未登録のコンポーネントを指す場合、Vue はネイティブタグとして描画し、警告が出ることもあります。
🏷️ 関連ビルトイン
💡 関連ケース
関連ケースは近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q v-if の分岐との違いは?
A 結果は似ていますが、動的コンポーネントはデータ駆動で、ケースごとの分岐コードを書かずに済みます。
Q props を渡せますか?
A 渡せます。<component :is="view" :data="payload"> のように書くと、属性は選ばれたコンポーネントへ透過されます。
Q is に定義を直接書けますか?
A 書けます。:is="MyComponent" のようにコンポーネント定義オブジェクトを渡せば、完全に動的な場面にも対応できます。