切换内容。 定义 t…">
当前位置:首页 > VUE

纯Vue实现tab标签

2026-02-21 17:21:46VUE

Vue 实现 Tab 标签的方法

使用动态组件和 v-for

通过 v-for 渲染标签页标题,结合动态组件 <component :is="currentTab"> 切换内容。
定义 tabs 数组和 currentTab 状态,点击标签时更新 currentTab

纯Vue实现tab标签

<template>
  <div>
    <div class="tab-buttons">
      <button 
        v-for="tab in tabs" 
        :key="tab.name"
        @click="currentTab = tab.component"
        :class="{ active: currentTab === tab.component }"
      >
        {{ tab.name }}
      </button>
    </div>
    <component :is="currentTab" class="tab-content" />
  </div>
</template>

<script>
import Tab1 from './Tab1.vue';
import Tab2 from './Tab2.vue';

export default {
  data() {
    return {
      currentTab: 'Tab1',
      tabs: [
        { name: '标签1', component: 'Tab1' },
        { name: '标签2', component: 'Tab2' }
      ]
    };
  },
  components: { Tab1, Tab2 }
};
</script>

<style>
.tab-buttons button {
  padding: 8px 16px;
  margin-right: 4px;
  background: #eee;
  border: none;
}
.tab-buttons button.active {
  background: #ddd;
  font-weight: bold;
}
.tab-content {
  padding: 16px;
  border: 1px solid #ddd;
}
</style>

使用 v-show 控制显示

通过 v-show 切换标签内容,适合简单场景。
定义 activeTab 状态,点击标签时切换对应的 v-show 条件。

纯Vue实现tab标签

<template>
  <div>
    <div class="tab-buttons">
      <button 
        v-for="tab in tabs" 
        :key="tab"
        @click="activeTab = tab"
        :class="{ active: activeTab === tab }"
      >
        {{ tab }}
      </button>
    </div>
    <div v-show="activeTab === 'Tab1'">内容1</div>
    <div v-show="activeTab === 'Tab2'">内容2</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      activeTab: 'Tab1',
      tabs: ['Tab1', 'Tab2']
    };
  }
};
</script>

使用路由切换

结合 Vue Router 实现标签页,适合多页面应用。
通过 <router-link> 导航,<router-view> 显示内容。

<template>
  <div>
    <router-link 
      v-for="tab in tabs" 
      :key="tab.path"
      :to="tab.path"
      active-class="active"
    >
      {{ tab.name }}
    </router-link>
    <router-view />
  </div>
</template>

<script>
export default {
  data() {
    return {
      tabs: [
        { name: '标签1', path: '/tab1' },
        { name: '标签2', path: '/tab2' }
      ]
    };
  }
};
</script>

注意事项

  • 性能优化:动态组件适合复杂内容切换,v-show 适合简单 DOM 切换。
  • 路由参数:若需保存标签页状态,可使用 keep-alive 包裹动态组件或路由视图。
  • 样式隔离:为每个标签内容添加独立样式类,避免冲突。

标签: 标签Vue
分享给朋友:

相关文章

Vue实现闯关

Vue实现闯关

Vue 实现闯关功能的方法 使用 Vue 实现闯关功能通常需要结合组件化开发、状态管理和动画效果。以下是实现闯关功能的几种方法: 组件化设计 将闯关界面拆分为多个组件,如关卡选择组件、游戏主界面组件…

Vue查看全文实现

Vue查看全文实现

Vue 查看全文实现方法 在Vue中实现查看全文功能通常涉及文本截断和展开/折叠操作,以下是几种常见实现方式: 使用CSS控制文本显示 通过CSS的text-overflow和line-clamp属…

elementui标签

elementui标签

ElementUI 标签的基本使用 ElementUI 提供 <el-tag> 组件用于展示标签信息,支持多种样式和交互功能。 基础用法 通过 type 属性设置标签类型,可选值包括…

Vue实现数据检验

Vue实现数据检验

Vue 数据校验的实现方法 在Vue中实现数据校验可以通过多种方式完成,以下是常见的几种方法: 使用Vue的内置指令 Vue提供了一些内置指令如v-model和v-bind可以结合HTML5的表单验…

vue如何实现标签

vue如何实现标签

实现动态标签页 在Vue中可以通过<component :is="currentTab">动态切换组件,结合v-for渲染标签页头部。典型结构包含标签页容器和内容区域: <temp…

Vue echarts实现散点图

Vue echarts实现散点图

Vue ECharts 实现散点图 安装 ECharts 在 Vue 项目中安装 ECharts 依赖: npm install echarts --save 引入 ECharts 在组件中引入 E…