当前位置:首页 > VUE

vue 实现点击切换tab

2026-02-21 08:19:55VUE

vue 实现点击切换tab

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

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

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

vue 实现点击切换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="..."> 来切换不同的组件。

vue 实现点击切换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">
      <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 切换功能。

标签: vuetab
分享给朋友:

相关文章

vue实现积分

vue实现积分

Vue 实现积分功能 在 Vue 中实现积分功能通常涉及前端展示、交互逻辑以及与后端 API 的通信。以下是常见的实现方法和步骤: 积分展示组件 创建一个积分展示组件,用于显示当前用户的积分。可以使…

vue实现频道

vue实现频道

Vue实现频道功能的方法 使用Vue Router动态路由 通过Vue Router的动态路由功能可以轻松实现频道切换。在路由配置中定义动态参数,组件内通过this.$route.params获取当前…

vue实现list

vue实现list

Vue 实现列表渲染 在 Vue 中,可以使用 v-for 指令来渲染列表。v-for 指令基于一个数组或对象来渲染一个列表,可以遍历数组或对象的属性。 基本列表渲染 <template>…

vue 菜单实现

vue 菜单实现

Vue 菜单实现方法 在Vue中实现菜单功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-for动态生成菜单 通过数据驱动的方式动态渲染菜单项,适合菜单内容可能变化的场景: <t…

vue filter 实现

vue filter 实现

在 Vue.js 中,过滤器(Filter)是一种用于文本格式化的功能,可以在模板中直接使用。以下是实现过滤器的详细方法: 全局过滤器注册 通过 Vue.filter 方法注册全局过滤器,可在所有组…

vue拼图实现

vue拼图实现

实现 Vue 拼图游戏的方法 使用 Vue 组件和动态数据绑定 创建一个 Vue 组件来管理拼图的状态和逻辑。通过 v-for 动态渲染拼图块,利用 v-bind 绑定样式和位置。拼图块的数据可以存储…