【区分vue2和vue3下的element UI Tabs 标签页组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Element UI(针对 Vue 2)和 Element Plus(针对 Vue 3)中,Tabs 标签页组件通常被称为 el-tabs。虽然两个版本在 API 和实现上可能有一些细微的差别,但基本概念和用法是相似的。下面我将分别介绍在 Vue 2 的 Element UI 和 Vue 3 的 Element Plus 中如何使用 el-tabs 组件。

Vue 2 + Element UI

在 Vue 2 的 Element UI 中,el-tabs 组件用于创建标签页。

属性(Props)
  • v-modelvalue:绑定当前激活标签页的 name。
  • type:标签页的类型,可选值为 border-card(带边框的卡片风格)或 card(卡片风格)。
  • closable:标签是否可关闭。
  • addable:标签是否可增加。
  • editable:标签是否同时可增删。
  • tab-click:标签被点击时的触发方式,可选值为 prev(只触发前一个标签)、next(只触发后一个标签)或 both(前后都触发)。
  • tab-position:标签的位置,可选值为 toprightbottomleft
  • stretch:是否拉伸标签页填满整个容器。
  • before-remove:关闭前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止关闭。
事件(Events)
  • tab-click:标签被点击时触发。
  • tab-remove:标签被关闭时触发。
  • tab-add:标签被添加时触发(仅在 addableeditabletrue 时有效)。
  • tab-edit:标签被编辑时触发(仅在 editabletrue 时有效)。
示例
<template>
  <el-tabs v-model="activeName" @tab-click="handleClick">
    <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
    <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
    <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
    <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
  </el-tabs>
</template>

<script>
export default {
  data() {
    return {
      activeName: 'first'
    };
  },
  methods: {
    handleClick(tab, event) {
      console.log(tab, event);
    }
  }
};
</script>

Vue 3 + Element Plus

在 Vue 3 的 Element Plus 中,el-tabs 组件的用法与 Vue 2 的 Element UI 类似,但可能会有一些 API 变动和新增功能。

属性(Props)和事件(Events)

Element Plus 的 el-tabs 组件的大部分属性和事件与 Element UI 保持一致,但可能会有一些细微的差别或新增的属性/事件。由于 Element Plus 的更新迭代,建议参考官方文档以获取最新的属性和事件列表。

示例(假设与 Element UI 类似)
<template>
  <el-tabs v-model="activeName" @tab-click="handleClick">
    <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
    <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
    <!-- 其他标签页 -->
  </el-tabs>
</template>

<script setup>
import { ref } from 'vue';

const activeName = ref('first');

function handleClick(tab, event) {
  console.log(tab, event);
}
</script>

注意:由于 Element Plus 还在不断发展中,具体的 API 和使用方法可能会有所不同。务必参考 Element Plus 的官方文档以获取最准确的信息和示例代码。同时,Vue 3 的 Composition API(如 setupref 等)在示例中有所体现,这也是 Vue 3 相较于 Vue 2 的一个主要变化。

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue Element 中,可以使用 `el-tabs` 组件来实现动态的标签增删,同时可以通过 `el-tab-pane` 组件来为每个标签传递不同的 Vue 组件。下面是一个简单的示例: ``` <template> <div> <el-tabs v-model="activeTab"> <el-tab-pane v-for="(item, index) in tabs" :key="item.name" :label="item.label" :name="item.name" > <component :is="item.component"></component> </el-tab-pane> </el-tabs> <el-button @click="addTab">Add Tab</el-button> </div> </template> <script> export default { data() { return { tabs: [ { label: 'Tab 1', name: 'tab1', component: 'Component1', }, { label: 'Tab 2', name: 'tab2', component: 'Component2', }, ], activeTab: 'tab1', } }, methods: { addTab() { const newTab = { label: `Tab ${this.tabs.length + 1}`, name: `tab${this.tabs.length + 1}`, component: 'Component3', } this.tabs.push(newTab) this.activeTab = newTab.name }, }, components: { Component1: { template: '<div>Component 1</div>', }, Component2: { template: '<div>Component 2</div>', }, Component3: { template: '<div>Component 3</div>', }, }, } </script> ``` 在这个示例中,我们使用 `v-for` 指令来循环渲染每个标签。对于每个标签,我们使用 `el-tab-pane` 组件来渲染,其中 `:label` 属性用来设置标签的名称,`:name` 属性用来设置唯一的标识符,`:key` 属性用来帮助 Vue 识别这个组件。在标签的内容中,使用 `component` 组件来动态渲染不同的 Vue 组件。具体来说,我们使用 `:is` 属性来设置要渲染的组件类型,然后在组件内部使用相应的模板来渲染内容。 在 `addTab` 方法中,我们通过向 `tabs` 数组中添加一个新的标签来实现动态增加。同时,我们将 `activeTab` 设置为新添加标签的 `name` 属性,以便在添加标签后自动切换到新添加的标签。 注意,上面的示例中,`Component1`、`Component2` 和 `Component3` 都是简单的组件,只是渲染了一些文本内容。在实际应用中,你需要根据实际情况来编写相应的组件,并将它们传递给标签
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

加仑小铁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值