当前位置:首页 > 前端教程

elementui tabs

2026-03-05 20:20:45前端教程

Element UI Tabs 组件使用指南

Element UI 提供了一套功能丰富的 Tabs 组件,用于在页面中展示多个内容区域,并通过标签页进行切换。

基本用法

<el-tabs v-model="activeName">
  <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-tabs>

<script>
export default {
  data() {
    return {
      activeName: 'first'
    }
  }
}
</script>

卡片样式

通过设置 type 属性为 card 可以改变标签页的样式:

<el-tabs v-model="activeName" type="card">
  <!-- 标签页内容 -->
</el-tabs>

可关闭标签页

添加 closable 属性使标签页可关闭:

<el-tabs v-model="activeName" type="card" closable>
  <el-tab-pane 
    v-for="item in tabs" 
    :key="item.name" 
    :label="item.label" 
    :name="item.name"
  >
    {{ item.content }}
  </el-tab-pane>
</el-tabs>

自定义标签页

可以使用具名插槽 label 自定义标签内容:

<el-tabs>
  <el-tab-pane>
    <template #label>
      <span><i class="el-icon-date"></i> 自定义标签</span>
    </template>
    自定义标签内容
  </el-tab-pane>
</el-tabs>

动态增减标签页

结合数组操作实现动态增减标签页:

methods: {
  addTab() {
    const newTabName = `newTab${this.tabs.length + 1}`
    this.tabs.push({
      label: `New Tab ${this.tabs.length + 1}`,
      name: newTabName,
      content: `New Tab content ${this.tabs.length + 1}`
    })
    this.activeName = newTabName
  },
  removeTab(targetName) {
    const tabs = this.tabs
    let activeName = this.activeName
    if (activeName === targetName) {
      tabs.forEach((tab, index) => {
        if (tab.name === targetName) {
          const nextTab = tabs[index + 1] || tabs[index - 1]
          if (nextTab) {
            activeName = nextTab.name
          }
        }
      })
    }
    this.activeName = activeName
    this.tabs = tabs.filter(tab => tab.name !== targetName)
  }
}

禁用标签页

通过 disabled 属性禁用特定标签页:

<el-tab-pane label="禁用标签" name="disabled" disabled>禁用内容</el-tab-pane>

位置设置

使用 tab-position 属性可以设置标签位置:

<el-tabs tab-position="left">
  <!-- 标签页内容 -->
</el-tabs>

事件处理

Tabs 组件提供多种事件:

<el-tabs 
  v-model="activeName" 
  @tab-click="handleClick" 
  @tab-remove="handleRemove"
>
  <!-- 标签页内容 -->
</el-tabs>

懒加载

设置 lazy 属性实现标签页内容的懒加载:

elementui tabs

<el-tab-pane label="懒加载" name="lazy" :lazy="true">
  懒加载内容
</el-tab-pane>

标签: elementuitabs
分享给朋友:

相关文章

elementui消息

elementui消息

ElementUI 消息提示 ElementUI 提供了一套消息提示组件,包括 Message、MessageBox 和 Notification,用于展示不同类型的反馈信息。 消息提示(Mes…

elementui配色

elementui配色

Element UI 配色方案 Element UI 提供了一套基于 Vue.js 的默认配色方案,主要用于组件库的视觉设计。以下是其核心配色及自定义方法: 默认主题色 主色调:#409EFF(蓝色…

elementui返回

elementui返回

Element UI 返回功能实现方法 Element UI 提供了多种方式实现返回功能,具体取决于使用场景和需求。以下是几种常见的方法: 使用 el-button 结合路由返回 在 Vue 项…

elementui拍照

elementui拍照

使用ElementUI实现拍照功能 ElementUI本身不直接提供拍照组件,但可以通过结合HTML5的<input type="file">和<video>元素实现。以下是实…

elementui markdown

elementui markdown

ElementUI 与 Markdown 结合使用 ElementUI 是一个基于 Vue.js 的组件库,常用于快速构建前端界面。Markdown 是一种轻量级标记语言,常用于文档编写。以下是将 E…

elementui tabs

elementui tabs

ElementUI Tabs 基础用法 ElementUI 的 Tabs 组件提供了一种便捷的方式来组织内容,通过标签页的形式展示不同板块的信息。使用 el-tabs 和 el-tab-pane 组件…