当前位置:首页 > 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 绑定当前激活状态。

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

注意事项

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

vue实现tab

标签: vuetab
分享给朋友:

相关文章

vue卖座网实现

vue卖座网实现

Vue 卖座网实现 项目结构搭建 使用 Vue CLI 快速初始化项目,安装必要依赖如 Vue Router、Vuex、Axios。 创建核心目录结构:components(通用组件)、views(页…

vue实现发表

vue实现发表

Vue 实现发表功能 在 Vue 中实现发表功能通常涉及表单处理、数据绑定和网络请求。以下是实现步骤和代码示例: 表单设计与数据绑定 创建一个表单用于输入发表内容,使用 v-model 进行数据双向…

vue 实现pdf

vue 实现pdf

在Vue中实现PDF功能 在Vue项目中实现PDF功能通常涉及PDF生成、预览或下载。以下是几种常见实现方式: 使用vue-pdf库预览PDF 安装依赖: npm install vue-…

实现.vue文件

实现.vue文件

创建.vue文件的基本结构 一个标准的.vue文件包含三个部分:模板(template)、脚本(script)和样式(style)。这种结构允许开发者在一个文件中管理组件的HTML、JavaScrip…

vue实现登出

vue实现登出

实现Vue登出功能 登出功能通常涉及清除用户会话、令牌或本地存储的数据,并重定向到登录页面。以下是几种常见的实现方式: 清除用户令牌和状态 在Vuex的store中定义一个logout mutati…

vue插件实现

vue插件实现

Vue 插件实现方法 Vue 插件是一种向 Vue 应用程序添加全局功能的机制。插件可以包含全局指令、过滤器、混入、实例方法等。 插件的基本结构 一个 Vue 插件通常是一个对象或函数,需要暴露一…