动态切换组件,结合 v-for 渲染标签栏。
当前位置:首页 > VUE

vue 实现tab

2026-03-07 10:54:50VUE

Vue 实现 Tab 的几种方法

使用动态组件

通过 Vue 的 <component :is="currentTab"> 动态切换组件,结合 v-for 渲染标签栏。

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

<script>
export default {
  data() {
    return {
      tabs: ['Home', 'About', 'Contact'],
      currentTab: 'Home'
    }
  },
  components: {
    Home,
    About,
    Contact
  }
}
</script>

使用 CSS 控制显示隐藏

通过 v-showv-if 控制内容区域的显示,适合简单场景。

<template>
  <div>
    <div class="tab-buttons">
      <button 
        v-for="(tab, index) in tabs" 
        :key="index"
        @click="activeTab = index"
        :class="{ active: activeTab === index }"
      >
        {{ tab.title }}
      </button>
    </div>
    <div class="tab-content">
      <div v-for="(tab, index) in tabs" :key="index" v-show="activeTab === index">
        {{ tab.content }}
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      activeTab: 0,
      tabs: [
        { title: 'Tab 1', content: 'Content 1' },
        { title: 'Tab 2', content: 'Content 2' }
      ]
    }
  }
}
</script>

使用第三方库

例如 vue-tabs-componentelement-uiel-tabs,快速实现复杂功能。

vue 实现tab

<template>
  <el-tabs v-model="activeName">
    <el-tab-pane label="Home" name="home">Home Content</el-tab-pane>
    <el-tab-pane label="About" name="about">About Content</el-tab-pane>
  </el-tabs>
</template>

<script>
export default {
  data() {
    return {
      activeName: 'home'
    }
  }
}
</script>

注意事项

  • 动态组件需提前注册子组件
  • v-if 会触发组件销毁/重建,v-show 仅切换 CSS 显示
  • 复杂交互建议使用状态管理(如 Vuex)维护 Tab 状态
  • 移动端可结合手势库实现滑动切换

标签: vuetab
分享给朋友:

相关文章

vue实现类别

vue实现类别

Vue 实现类别的几种方法 在 Vue 中实现类别功能可以通过多种方式完成,以下是一些常见的方法: 使用 v-bind:class 动态绑定类名 通过对象语法或数组语法动态绑定类名,根据条件添加或移…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使用…

vue实现甘特图

vue实现甘特图

使用 Vue 实现甘特图 基于开源库(如 vue-ganttastic) 安装依赖库: npm install vue-ganttastic 示例代码: <template> &l…

vue 实现图片

vue 实现图片

Vue 实现图片加载与展示的方法 在 Vue 中实现图片加载和展示可以通过多种方式完成,以下是一些常见的方法: 使用 v-bind 绑定图片路径 通过 v-bind(或简写为 :)动态绑定图片的…

vue实现webshell

vue实现webshell

Vue 实现 WebShell 使用 Vue 实现 WebShell 需要结合前端与后端的交互,通常通过 WebSocket 或 HTTP 协议与服务器通信。以下是一个基于 Vue 和 WebSock…

vue实现treetable

vue实现treetable

Vue实现TreeTable的方法 使用第三方组件库(如Element UI) Element UI的el-table组件支持树形表格展示,通过设置row-key和tree-props属性即可实现。…