当前位置:首页 > 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 属性动态加载不同组件。

vue实现tab

<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 同步的场景。

vue实现tab

// 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 并处理导航逻辑。
  • 第三方库需按文档正确安装和配置。

标签: vuetab
分享给朋友:

相关文章

vue实现granfana

vue实现granfana

Vue 实现类似 Grafana 的仪表盘 要在 Vue 中实现类似 Grafana 的仪表盘功能,需要结合数据可视化库、状态管理和 UI 组件。以下是关键步骤和推荐工具: 数据可视化库 使用 E…

vue 实现排序

vue 实现排序

Vue 实现排序的方法 使用计算属性实现排序 通过计算属性对数组进行排序,可以保持原始数据不变。示例代码展示了如何对列表按名称升序排序: <template> <div>…

vue实现上传

vue实现上传

Vue 文件上传实现方法 使用 Vue 实现文件上传可以通过原生 HTML5 的 <input type="file"> 元素结合 Vue 的事件处理和数据绑定来实现。 基础实现步骤…

vue实现评分

vue实现评分

Vue 实现评分功能 使用组件库实现 安装 element-ui 或 ant-design-vue 这类 UI 库,它们已经内置了评分组件。 以 element-ui 为例: <templa…

vue 实现上传

vue 实现上传

Vue 实现文件上传 使用 Vue 实现文件上传可以通过原生 HTML 的 <input type="file"> 或第三方库(如 axios、vue-upload-component)完…

react实现vue

react实现vue

React 实现 Vue 功能 React 和 Vue 是两种不同的前端框架,但可以通过一些方法在 React 中实现 Vue 的特性。以下是几种常见 Vue 功能在 React 中的实现方式: 双…