前言

Vue 3作为一个前端框架,提供了丰富的功能来构建动态且响应式的用户界面。在众多功能中,<component>标签是一个强大的特性,它允许我们动态地渲染不同的组件。这在创建灵活且可重用的UI组件时非常有用。本文将详细介绍如何在Vue 3中使用<component>标签

基本使用

<component>,一个用于渲染动态组件或元素的“元组件”。

Props

interface DynamicComponentProps {
  is: string | Component
}

要渲染的实际组件由 is 决定。

  • is 是字符串,它既可以是 HTML 标签名也可以是组件的注册名。
  • 或者,is 也可以直接绑定到组件的定义。

示例

<script setup>
// 引入组件  
import Foo from './Foo.vue'
import Bar from './Bar.vue'
import Comp1 from './Comp1.vue'
import Comp2 from './Comp2.vue'
// 创建组件map
const ComponentMap = {
  0:Foo,
  1:Bar,
  2:Comp1,
  3:Comp2
}
const AllData = 
</script>

<template>

   <div v-for="componentItem in AllData" :key="dataItem.id">
        <component
          :is="ComponentMap[componentItem.type]"  // 控制组件显示,后端只需要保存数字状态
          :compData="componentItem.data" // 传参数
        />
   </div>
</template>
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐