当前位置:首页 > VUE

vue实现tab页

2026-03-09 05:03:17VUE

Vue 实现 Tab 页的几种方法

使用动态组件(<component>

通过 Vue 的 <component> 动态组件结合 v-bind:is 实现 Tab 切换。定义一个数组存储 Tab 内容,通过 currentTab 控制当前显示的组件。

<template>
  <div>
    <button v-for="tab in tabs" :key="tab" @click="currentTab = tab">
      {{ tab }}
    </button>
    <component :is="currentTabComponent"></component>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tabs: ['Home', 'Posts', 'Archive'],
      currentTab: 'Home'
    };
  },
  computed: {
    currentTabComponent() {
      return this.currentTab.toLowerCase() + '-tab';
    }
  }
};
</script>

使用 v-ifv-show

通过条件渲染控制 Tab 内容的显示与隐藏。v-if 会销毁和重建 DOM,适合切换频率低的场景;v-show 仅切换 CSS 的 display 属性,适合频繁切换。

<template>
  <div>
    <button @click="activeTab = 'tab1'">Tab 1</button>
    <button @click="activeTab = 'tab2'">Tab 2</button>
    <div v-if="activeTab === 'tab1'">Content for Tab 1</div>
    <div v-show="activeTab === 'tab2'">Content for Tab 2</div>
  </div>
</template>

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

使用 Vue Router

通过路由实现多页签效果,每个 Tab 对应一个路由路径。适合需要 URL 同步或复杂状态管理的场景。

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

使用第三方库(如 Element UI)

UI 库如 Element UI 提供了封装好的 Tab 组件,可直接使用。

vue实现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>

关键注意事项

  • 性能优化:频繁切换时优先使用 v-show 或动态组件。
  • 状态保持:使用 <keep-alive> 包裹动态组件可缓存非活跃 Tab 的状态。
  • 可访问性:为 Tab 按钮添加 ARIA 属性(如 role="tab")以支持屏幕阅读器。

以上方法可根据项目需求灵活选择,简单场景用条件渲染,复杂场景推荐结合路由或 UI 库。

标签: vuetab
分享给朋友:

相关文章

vue设计与实现下载

vue设计与实现下载

vue设计与实现电子书下载 《Vue.js设计与实现》是一本深入解析Vue.js框架原理的书籍,由霍春阳(HcySunYang)撰写。以下是获取该资源的常见途径: 正版购买渠道 京东、当当、天猫等…

vue原型实现

vue原型实现

Vue 原型实现的关键点 Vue.js 的原型系统是其响应式机制的核心部分,通过原型链实现数据的动态绑定和依赖收集。以下是实现 Vue 原型的主要技术要点。 数据响应式原理 Vue 通过 Objec…

vue 实现blog

vue 实现blog

Vue 实现博客的基本步骤 使用 Vue 实现博客可以分为前端和后端两部分,前端使用 Vue.js 框架,后端可以选择 Node.js、Python 或其他服务端语言。以下是一个基于 Vue 的博客实…

vue评分实现

vue评分实现

Vue 评分组件实现方法 使用第三方库(如 Element UI) 安装 Element UI: npm install element-ui 引入并注册组件: import Vue from '…

vue实现盖章

vue实现盖章

Vue 实现盖章功能 在Vue中实现盖章功能通常涉及前端UI交互,通过Canvas或SVG绘制印章,并允许用户拖拽或点击放置印章。以下是具体实现方法: 使用Canvas绘制印章 通过HTML5的Ca…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…