当前位置:首页 > VUE

vue 实现点击切换tab

2026-02-21 08:19:55VUE

vue 实现点击切换tab

在 Vue 中实现点击切换 Tab 功能可以通过多种方式完成,以下是几种常见的方法:

使用 v-if 或 v-show 控制显示

通过绑定一个变量来切换不同 Tab 内容的显示状态。

<template>
  <div>
    <div class="tabs">
      <button @click="activeTab = 'tab1'">Tab 1</button>
      <button @click="activeTab = 'tab2'">Tab 2</button>
      <button @click="activeTab = 'tab3'">Tab 3</button>
    </div>
    <div class="content">
      <div v-if="activeTab === 'tab1'">Content for Tab 1</div>
      <div v-if="activeTab === 'tab2'">Content for Tab 2</div>
      <div v-if="activeTab === 'tab3'">Content for Tab 3</div>
    </div>
  </div>
</template>

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

使用动态组件

通过动态组件 <component :is="..."> 来切换不同的组件。

<template>
  <div>
    <div class="tabs">
      <button @click="activeTab = 'Tab1'">Tab 1</button>
      <button @click="activeTab = 'Tab2'">Tab 2</button>
      <button @click="activeTab = 'Tab3'">Tab 3</button>
    </div>
    <div class="content">
      <component :is="activeTab" />
    </div>
  </div>
</template>

<script>
import Tab1 from './Tab1.vue';
import Tab2 from './Tab2.vue';
import Tab3 from './Tab3.vue';

export default {
  components: { Tab1, Tab2, Tab3 },
  data() {
    return {
      activeTab: 'Tab1'
    };
  }
};
</script>

使用 Vue Router 实现

如果 Tab 切换涉及路由跳转,可以使用 Vue Router 实现。

<template>
  <div>
    <router-link to="/tab1">Tab 1</router-link>
    <router-link to="/tab2">Tab 2</router-link>
    <router-link to="/tab3">Tab 3</router-link>
    <router-view></router-view>
  </div>
</template>

使用 CSS 类切换样式

通过动态绑定 CSS 类来实现 Tab 的高亮效果。

vue 实现点击切换tab

<template>
  <div>
    <div class="tabs">
      <button 
        @click="activeTab = 'tab1'" 
        :class="{ 'active': activeTab === 'tab1' }"
      >Tab 1</button>
      <button 
        @click="activeTab = 'tab2'" 
        :class="{ 'active': activeTab === 'tab2' }"
      >Tab 2</button>
      <button 
        @click="activeTab = 'tab3'" 
        :class="{ 'active': activeTab === 'tab3' }"
      >Tab 3</button>
    </div>
    <div class="content">
      <div v-show="activeTab === 'tab1'">Content for Tab 1</div>
      <div v-show="activeTab === 'tab2'">Content for Tab 2</div>
      <div v-show="activeTab === 'tab3'">Content for Tab 3</div>
    </div>
  </div>
</template>

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

<style>
.active {
  background-color: #42b983;
  color: white;
}
</style>

以上方法可以根据具体需求选择使用,每种方式都能实现 Tab 切换功能。

标签: vuetab
分享给朋友:

相关文章

vue实现单页面

vue实现单页面

Vue 实现单页面应用(SPA) Vue.js 是一个渐进式框架,非常适合构建单页面应用(SPA)。SPA 的核心特点是整个应用只有一个 HTML 页面,通过动态加载内容实现页面切换,无需重新加载整个…

vue实现无线滚动列表

vue实现无线滚动列表

无限滚动列表的实现方法 在Vue中实现无限滚动列表通常结合监听滚动事件和动态加载数据。以下是几种常见方法: 使用自定义指令 创建自定义指令v-infinite-scroll监听滚动事件: Vue.…

vue实现签约合作弹窗

vue实现签约合作弹窗

实现签约合作弹窗的步骤 使用Vue实现签约合作弹窗可以通过组件化方式完成,结合模态框和表单交互逻辑。以下是具体实现方法: 1. 创建弹窗组件 新建一个Vue组件文件(如SignContractDia…

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现试卷

vue实现试卷

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

实现vue datepicker

实现vue datepicker

安装依赖 使用 vue-datepicker 或第三方库如 v-calendar 或 vue2-datepicker。以 vue2-datepicker 为例: npm install vue2…