当前位置:首页 > VUE

vue实现标签切换

2026-02-18 22:05:07VUE

Vue 实现标签切换的方法

使用动态组件 <component :is>

通过动态组件可以轻松切换不同的子组件。结合 v-forv-if 控制显示逻辑。

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

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

export default {
  components: { Tab1, Tab2 },
  data() {
    return {
      currentTab: 'Tab1',
      tabs: [
        { name: 'Tab1', label: '标签1' },
        { name: 'Tab2', label: '标签2' }
      ]
    };
  }
};
</script>

结合 v-ifv-show

直接通过条件渲染控制标签内容的显隐。

<template>
  <div>
    <button @click="activeTab = 'tab1'">标签1</button>
    <button @click="activeTab = 'tab2'">标签2</button>

    <div v-if="activeTab === 'tab1'">内容1</div>
    <div v-if="activeTab === 'tab2'">内容2</div>
  </div>
</template>

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

使用 Vue Router

适合需要 URL 同步的标签切换场景。

// router.js
const routes = [
  { path: '/tab1', component: Tab1 },
  { path: '/tab2', component: Tab2 }
];
<template>
  <router-link to="/tab1">标签1</router-link>
  <router-link to="/tab2">标签2</router-link>
  <router-view></router-view>
</template>

第三方组件库

如 Element UI 的 el-tabs 或 Ant Design Vue 的 a-tabs

vue实现标签切换

<template>
  <el-tabs v-model="activeTab">
    <el-tab-pane label="标签1" name="tab1">内容1</el-tab-pane>
    <el-tab-pane label="标签2" name="tab2">内容2</el-tab-pane>
  </el-tabs>
</template>

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

关键注意事项

  • 性能优化:频繁切换时用 v-show 替代 v-if(避免重复渲染)。
  • 状态保持:使用 <keep-alive> 包裹动态组件可保留组件状态。
  • 路由懒加载:配合 () => import('./Tab1.vue') 提升首屏速度。

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

相关文章

vue课程实现

vue课程实现

Vue 课程实现方案 课程内容设计 Vue课程应从基础到高级逐步展开,涵盖Vue核心概念、组件化开发、状态管理、路由、构建工具等。基础部分包括Vue实例、模板语法、计算属性和侦听器。中级部分深入组件通…

vue首页实现

vue首页实现

实现Vue首页的基本步骤 创建一个Vue首页通常涉及项目初始化、页面结构设计、路由配置和组件开发。以下是具体实现方法: 初始化Vue项目 使用Vue CLI或Vite快速搭建项目结构: npm i…

vue实现datalist

vue实现datalist

使用 Vue 实现 HTML5 的 datalist 功能 HTML5 的 <datalist> 元素提供了一种自动完成输入框的功能,允许用户在输入时从预定义的选项列表中选择。以下是几种在…

vue核心实现

vue核心实现

Vue 核心实现原理 Vue.js 的核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是关键实现原理的详细说明: 响应式系统 Vue 使用 Object.defineProper…

vue实现评分

vue实现评分

Vue 实现评分功能 使用组件库实现 安装 element-ui 或 ant-design-vue 这类 UI 库,它们已经内置了评分组件。 以 element-ui 为例: <templa…

vue 实现长按

vue 实现长按

实现长按功能的基本思路 在Vue中实现长按功能,通常需要监听元素的mousedown或touchstart事件,启动一个计时器。当用户按住元素超过设定的时间阈值时,触发长按回调函数。如果在时间阈值内触…