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