当前位置:首页 > VUE

vue实现tab

2026-02-10 16:54:26VUE

Vue 实现 Tab 切换的几种方法

使用 v-if 和 v-show 指令

通过 v-ifv-show 控制不同 Tab 内容的显示与隐藏。v-if 会销毁和重建 DOM,适合切换频率低的场景;v-show 通过 CSS 控制显示,适合频繁切换。

<template>
  <div>
    <div class="tabs">
      <button @click="currentTab = 'tab1'">Tab 1</button>
      <button @click="currentTab = 'tab2'">Tab 2</button>
    </div>
    <div class="content">
      <div v-if="currentTab === 'tab1'">Content 1</div>
      <div v-if="currentTab === 'tab2'">Content 2</div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentTab: 'tab1'
    }
  }
}
</script>

使用动态组件

通过 Vue 的 <component> 动态组件实现 Tab 切换,结合 :is 属性动态加载不同组件。

<template>
  <div>
    <div class="tabs">
      <button @click="currentTab = 'Tab1'">Tab 1</button>
      <button @click="currentTab = 'Tab2'">Tab 2</button>
    </div>
    <component :is="currentTab" />
  </div>
</template>

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

export default {
  components: { Tab1, Tab2 },
  data() {
    return {
      currentTab: 'Tab1'
    }
  }
}
</script>

使用路由实现 Tab

通过 Vue Router 实现 Tab 切换,适合需要 URL 同步的场景。

// router.js
const routes = [
  { path: '/tab1', component: Tab1 },
  { path: '/tab2', component: Tab2 }
]
<template>
  <div>
    <router-link to="/tab1">Tab 1</router-link>
    <router-link to="/tab2">Tab 2</router-link>
    <router-view></router-view>
  </div>
</template>

使用第三方库

vue-tabs-componentelement-ui 的 Tab 组件,快速实现功能丰富的 Tab。

<template>
  <el-tabs v-model="activeTab">
    <el-tab-pane label="Tab 1" name="tab1">Content 1</el-tab-pane>
    <el-tab-pane label="Tab 2" name="tab2">Content 2</el-tab-pane>
  </el-tabs>
</template>

<script>
export default {
  data() {
    return {
      activeTab: 'tab1'
    }
  }
}
</script>

样式与交互优化

为 Tab 按钮添加高亮样式,通过 :class 绑定当前激活状态。

vue实现tab

<button 
  @click="currentTab = 'tab1'"
  :class="{ active: currentTab === 'tab1' }"
>Tab 1</button>
.active {
  background-color: #42b983;
  color: white;
}

注意事项

  • 动态组件需提前注册或在 components 中引入。
  • 路由方式需配置 Vue Router 并处理导航逻辑。
  • 第三方库需按文档正确安装和配置。

标签: vuetab
分享给朋友:

相关文章

vue 实现在线预览

vue 实现在线预览

Vue 实现在线预览的常见方法 使用 iframe 嵌入 通过 iframe 标签可以嵌入多种类型的文件,如 PDF、图片、网页等。需要确保文件地址可访问。 <template> &…

vue实现store

vue实现store

Vue 实现 Store 在 Vue 中,可以通过 Vuex 或 Pinia 实现全局状态管理(Store)。以下是两种主流方案的实现方法。 使用 Vuex 实现 Store Vuex 是 Vue…

vue 指令实现

vue 指令实现

Vue 指令实现 Vue 指令是 Vue.js 提供的特殊属性,用于在 DOM 元素上添加特殊行为。指令以 v- 前缀开头,例如 v-model、v-if、v-for 等。以下是实现自定义指令和常用内…

vue实现排序

vue实现排序

Vue 实现排序的方法 在 Vue 中实现排序可以通过多种方式完成,以下是一些常见的方法: 使用计算属性排序数组 计算属性非常适合对数据进行排序,因为它会在依赖的数据变化时自动更新。以下是一个示例:…

vue 实现登录

vue 实现登录

Vue 实现登录功能 创建登录表单组件 在 Vue 项目中创建一个登录表单组件(如 Login.vue),包含用户名和密码输入框以及提交按钮。使用 v-model 实现双向数据绑定。 <tem…

vue实现京东

vue实现京东

Vue 实现京东电商网站的关键步骤 项目搭建与基础配置 使用 Vue CLI 或 Vite 初始化项目,安装 Vue Router 管理路由,Vuex/Pinia 管理状态。配置基础 UI 框架如 E…