当前位置:首页 > 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 的高亮效果。

<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 切换功能。

vue 实现点击切换tab

标签: vuetab
分享给朋友:

相关文章

vue如何实现放大缩小

vue如何实现放大缩小

Vue实现放大缩小功能的方法 在Vue中实现元素的放大缩小功能,可以通过CSS变换、第三方库或直接操作DOM样式来实现。以下是几种常见的方法: 使用CSS transform属性 通过绑定Vue的…

vue实现付款

vue实现付款

Vue 实现付款功能 在 Vue 中实现付款功能通常需要集成第三方支付网关(如支付宝、微信支付、Stripe 等)。以下是常见的实现方法: 集成支付宝/微信支付 安装必要的依赖(如 axios 用…

vue 实现toast

vue 实现toast

vue 实现 toast 的方法 在 Vue 中实现 Toast 提示功能可以通过多种方式,以下是几种常见的实现方法: 使用第三方库 Vue 生态中有许多成熟的 Toast 库,例如 vue-toa…

代码实现vue

代码实现vue

创建Vue项目 使用Vue CLI快速初始化项目,确保已安装Node.js和npm/yarn: npm install -g @vue/cli vue create my-vue-project c…

vue实现报表

vue实现报表

vue实现报表的方法 使用Vue实现报表通常需要结合图表库或表格组件。以下是几种常见方法: 使用ECharts 安装ECharts库: npm install echarts vue-echa…

vue 实现闪烁

vue 实现闪烁

Vue 实现闪烁效果的方法 方法一:使用 CSS 动画 在 Vue 组件中定义一个闪烁的 CSS 动画,通过绑定 class 或 style 来控制元素的闪烁效果。 <template>…