component 动态组件的用法

一:前言

        <component></component> 标签是Vue框架自定义的标签,它的用途就是可以动态绑定我们的组件,根据数据的不同需求来更换使用不同的组件。

        在最上方的图片中,就是使用的 Element Plus 的 Tags 组件,根据点击的不同来展示不同的组件。以下是项目的目录。

官方解释:

渲染一个“元组件”为动态组件。依 is 的值,来决定哪个组件被渲染

        因此 component 标签通常适用于多组件中展示其中一个的情况。可以省略很繁琐的 if 判断。减少代码的冗余性,同时提高可读性。接下来让我们看一下具体的实现吧!

二:各文件代码

1、三个组件的内部代码

        因为这三个组件只是测试用,所以内部代码十分简单,这里我就放在一起,没什么难度。

<template>
    <div class="home">
        这是第一个组件
    </div>
</template>

<template>
    <div class="home">
        这是第二个组件
    </div>
</template>

<template>
    <div class="home">
        这是第三个组件
    </div>
</template>

2、入口页面代码

        这个页面可以看到,首先我们是使用了<el-tabs>组件,将定义的数组进行循环然后渲染成一个具有点击事件的 tab 标签。然后我们定义了一个响应变量 activeName 通过点击不同的标签给其不同的值,然后绑定在 component 上,渲染不同的组价。

<template>
    <div class="home">
        <el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-change="handleChange">
            <el-tab-pane v-for="item in check" :label="item.label" :name="item.name">
                <component :is="activeName"></component>
            </el-tab-pane>
        </el-tabs>
    </div>
</template>
<script setup lang="ts">
import componentOne from './components/componentOne.vue'
import componentTwo from './components/componentTwo.vue'
import componentThree from './components/componentThree.vue'
import { ref } from 'vue'

const check: Array = [{
    name: 'componentOne',
    label: '第一个'
}, {
    name: 'componentTwo',
    label: "第二个"
}, {
    name: 'componentThree',
    label: '第三个'
}]

const activeName = ref('componentOne')

const handleChange = (name: TabPaneName) => {
    this.activeName = name
}
</script>

<style>
.demo-tabs>.el-tabs__content {
    padding: 32px;
    color: #6b778c;
    font-size: 32px;
    font-weight: 600;
}
</style>

三:总结

        该标签是在项目开发中很经常使用的,通过代码量的优化可以使阅读更加通俗易懂,对于后期修改以及定位也是有很大的帮助的。通常情况下,三个及三个以上的标签需要选其一,我们就可以使用这种去判断。好啦,本文就到此为止了,希望能够对各位小伙伴有所帮助哦~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴怒的代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值