当前位置:首页 > VUE

vue tab实现例子

2026-02-19 10:46:24VUE

Vue Tab 实现示例

以下是一个基于 Vue.js 的 Tab 组件实现示例,包含动态切换和基础样式。

vue tab实现例子

基础模板结构

<template>
  <div class="tabs">
    <div class="tabs-header">
      <button 
        v-for="(tab, index) in tabs" 
        :key="index"
        @click="activeTab = index"
        :class="{ 'active': activeTab === index }"
      >
        {{ tab.title }}
      </button>
    </div>
    <div class="tabs-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 for Tab 1' },
        { title: 'Tab 2', content: 'Content for Tab 2' },
        { title: 'Tab 3', content: 'Content for Tab 3' }
      ]
    }
  }
}
</script>

样式部分

<style scoped>
.tabs {
  font-family: Arial, sans-serif;
  max-width: 600px;
  margin: 0 auto;
}

.tabs-header {
  display: flex;
  border-bottom: 1px solid #ddd;
}

.tabs-header button {
  padding: 10px 20px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 16px;
}

.tabs-header button.active {
  border-bottom: 2px solid #42b983;
  color: #42b983;
}

.tabs-content {
  padding: 20px;
  min-height: 150px;
}
</style>

动态加载内容版本

如果需要动态加载不同组件作为 Tab 内容:

vue tab实现例子

<template>
  <div class="tabs">
    <div class="tabs-header">
      <button 
        v-for="(tab, index) in tabs" 
        :key="index"
        @click="setActiveTab(index)"
        :class="{ 'active': activeTab === index }"
      >
        {{ tab.title }}
      </button>
    </div>
    <div class="tabs-content">
      <component :is="tabs[activeTab].component" />
    </div>
  </div>
</template>
<script>
import Component1 from './Component1.vue'
import Component2 from './Component2.vue'

export default {
  components: {
    Component1,
    Component2
  },
  data() {
    return {
      activeTab: 0,
      tabs: [
        { title: 'Component 1', component: 'Component1' },
        { title: 'Component 2', component: 'Component2' }
      ]
    }
  },
  methods: {
    setActiveTab(index) {
      this.activeTab = index
    }
  }
}
</script>

使用 Vue Router 实现路由 Tab

对于需要与路由关联的 Tab:

const routes = [
  { path: '/tab1', component: Tab1 },
  { path: '/tab2', component: Tab2 }
]

const router = new VueRouter({
  routes
})

new Vue({
  router,
  template: `
    <div>
      <router-link to="/tab1" active-class="active">Tab 1</router-link>
      <router-link to="/tab2" active-class="active">Tab 2</router-link>
      <router-view></router-view>
    </div>
  `
}).$mount('#app')

标签: 例子vue
分享给朋友:

相关文章

vue路由实现

vue路由实现

Vue 路由实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是 Vue Router 的基本实现步骤和核心功能。 安装 Vue Router 通过…

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…

vue实现试卷

vue实现试卷

Vue实现试卷系统的基本思路 使用Vue.js构建试卷系统需要结合组件化开发、状态管理和后端数据交互。核心功能包括题目展示、答题逻辑、计时器和提交答案。 核心功能模块划分 试卷组件结构 试卷容器组…

实现vue cli

实现vue cli

安装 Vue CLI 确保系统中已安装 Node.js(版本建议 12.x 或更高)。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 安装完成后验证版本:…

vue 实现评分

vue 实现评分

Vue 实现评分功能 在 Vue 中实现评分功能可以通过多种方式完成,包括使用第三方组件库或自定义实现。以下是两种常见的方法: 使用第三方组件库(如 Element UI) Element UI 提…

vue导航实现

vue导航实现

Vue 导航实现方法 在 Vue 中实现导航功能通常涉及路由配置、组件设计和状态管理。以下是几种常见的实现方式: 使用 Vue Router 实现基础导航 安装 Vue Router: npm i…