<component> 动态组件
最后更新:2026-10-22
<component> 动态组件
| 分组 | 内置组件与元素 |
|---|---|
| 类型 | 组件/元素 |
| 作用域 | 模板 |
| Vue 版本 | 3.0+ |
| SSR 支持 | 支持 |
📝 语法
<component :is="currentView"></component>
<!-- 也可以渲染原生标签 -->
<component is="h3">动态标签</component>
⚙️ 参数
| props | is(组件名、组件定义对象或原生标签名字符串) |
|---|
▶ 示例
修改下面的代码,在预览区实时查看效果:
输出:
点击按钮在「组件 A」「组件 B」之间切换。
💡 要点
💡 提示 常见形态:标签页切换、根据类型渲染不同表单字段。
ℹ️ 说明 切换会销毁旧组件(状态丢失);需要保留状态时包 。
⚠️ 注意 若 is 的值指向未注册组件,Vue 会按原生标签渲染并可能警告。
🏷️ 相关内置组件与元素
💡 相关案例
更多案例即将上线。
📚 相关教程
❓ 常见问题
Q 和 v-if 分支的区别?
A 本质相似,但动态组件由数据驱动、无需为每种情况写分支代码。
Q 能传 props 吗?
A 能:<component :is="view" :data="payload">,属性会透传给被选中组件。
Q 能在 is 里直接写定义吗?
A 可以::is="MyComponent" 传组件定义对象,适合完全动态的场景。