VUE的tab页面切换的四种方法

VUE 是一款流行的 JavaScript 前端框架,用于构建交互式用户界面。在 VUE 中,tab 页面切换是常见的功能,以下是 VUE 中实现 tab 切换的四种方法的完整攻略。

1. 标准的 VUE 动态组件方法

我们可以使用标准的 VUE 动态组件方法,在模板中设置一个变量,然后根据变量的值确定要显示的组件。这种方法需要我们在 VUE 组件中定义所有的 tab 页面组件。

首先,我们需要在父组件中定义一个变量来指定显示哪个子组件。然后,使用 VUE 的 component 标签来渲染子组件。

示例代码:

<template>
  <div class="tab-container">
    <div class="tab-header">
      <div class="tab-item" v-for="(tab, index) in tabs" :key="index" @click="selectedTab = index">{{ tab }}</div>
    </div>
    <div class="tab-body">
      <component :is="selectedTabComponent"></component>
    </div>
  </div>
</template>

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

export default {
  name: 'TabContainer',
  data() {
    return {
      tabs: ['Tab 1', 'Tab 2', 'Tab 3'],
      selectedTab: 0,
    }
  },
  computed: {
    selectedTabComponent() {
      switch (this.selectedTab) {
        case 0:
          return Tab1
        case 1:
          return Tab2
        case 2:
          return Tab3
        default:
          return Tab1
      }
    }
  },
}
</script>

这个例子中,有三个子组件 Tab1Tab2Tab3,在父组件中根据 selectedTab 变量来确定显示哪个组件。在 computed 中使用 switch 语句根据 selectedTab 的值返回相应的组件。

2. 使用 VUE-ROUTER 实现

另一种常见的实现 tab 页面切换的方法是使用 vue-router 。在这种方法中,每个 tab 页面对应一个路由,切换 tab 时改变路由就可以了。

首先,我们需要在路由器中定义子路由。

const router = new VueRouter({
  routes: [
    {
      path: '/',
      component: Main,
      children: [
        {
          path: 'tab1',
          component: Tab1
        },
        {
          path: 'tab2',
          component: Tab2
        },
        {
          path: 'tab3',
          component: Tab3
        }
      ]
    }
  ]
});

在父组件中,我们需要添加router-view标签以展示子路由内容,同时也需要添加页面导航菜单。

<div class="tab-container">
  <div class="tab-header">
    <router-link to="/tab1" class="tab-item">Tab 1</router-link>
    <router-link to="/tab2" class="tab-item">Tab 2</router-link>
    <router-link to="/tab3" class="tab-item">Tab 3</router-link>
  </div>
  <div class="tab-body">
    <router-view></router-view>
  </div>
</div>

以上代码中,每个 router-link 标签都会将用户导向到相应的子路由页面。子路由页面将通过 router-view 标签进行渲染。

3. 使用 ELEMENT-UI 的 Tabs 组件

如果你在你的 VUE 项目中使用了 ELEMENT-UI 的组件库,你也可以很方便的使用 Tabs 组件来实现 tab 页面切换。如下:

<template>
  <div class="tab-container">
    <el-tabs v-model="activeName" @tab-click="handleClick">
      <el-tab-pane label="Tab 1" v-if="activeName === 'tab1'">
        <p>Tab 1 content</p>
      </el-tab-pane>
      <el-tab-pane label="Tab 2" v-if="activeName === 'tab2'">
        <p>Tab 2 content</p>
      </el-tab-pane>
      <el-tab-pane label="Tab 3" v-if="activeName === 'tab3'">
        <p>Tab 3 content</p>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>

<script>
export default {
  data() {
    return {
      activeName: 'tab1'
    };
  },
  methods: {
    handleClick(tab, event) {
      console.log(tab, event);
    }
  },
};
</script>

在这个例子中,我们使用了 ELEMENT-UI 的 Tabs 组件简化了开发过程。依据 activeName 的值,渲染对应的子组件。

4. Bootstrap + Jquery 实现

Bootstrap 和 Jquery 是另外一种常见的前端技术组合,也可以实现 tab 页面切换功能。

在 HTML 代码中,添加对相应的 Bootstrap 和 Jquery库的调用:

<head>
  <title>Bootstrap tab example</title>

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>

<body>
  <ul class="nav nav-tabs">
    <li class="active"><a data-toggle="tab" href="#tab1">Tab 1</a></li>
    <li><a data-toggle="tab" href="#tab2">Tab 2</a></li>
    <li><a data-toggle="tab" href="#tab3">Tab 3</a></li>
  </ul>

  <div class="tab-content">
    <div id="tab1" class="tab-pane fade in active">
      <h3>Tab 1</h3>
      <p>This is tab content</p>
    </div>
    <div id="tab2" class="tab-pane fade">
      <h3>Tab 2</h3>
      <p>This is tab content</p>
    </div>
    <div id="tab3" class="tab-pane fade">
      <h3>Tab 3</h3>
      <p>This is tab content</p>
    </div>
  </div> 
</body>

以上代码中,我们利用 Bootstrap 的 nav-tabs 和 tab-pane 样式类和 Jquery 的 data- 属性来指定要显示哪个 tab 子页面。

总结:以上四种方法中,vue-router 和标准的 VUE 动态组件方法最为使用广泛。 vue-router 适用于当子页面需要使用 router 功能时,标准的 VUE 动态组件方法适用于仅需切换子页面内容时。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VUE的tab页面切换的四种方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 基于axios封装fetch方法及调用实例

    基于axios封装fetch方法及调用实例,可以按照以下步骤进行: 第一步:安装和引入axios 安装axios: npm install axios –save 引入axios: import axios from ‘axios’; 第二步:封装fetch方法 封装fetch方法的主要目的是简化axios的使用,提高代码的可复用性。这里我们将会封装一个g…

    Vue 2023年5月28日
    00
  • 使用webpack手动搭建vue项目的步骤

    使用webpack手动搭建vue项目的步骤可能有点繁琐,但却是从根本上了解vue和webpack的运行机制、优化和调试的重要一步。 以下是手动搭建vue项目的完整攻略: 步骤1:新建项目 首先,我们需要在本地新建一个项目文件夹并打开命令行,使用npm初始化项目: npm init 这将在项目文件夹中创建一个package.json文件,其中包含了我们需要的依…

    Vue 2023年5月28日
    00
  • Axios在vue项目中的封装步骤

    Axios是一个基于promise的HTTP客户端,可用于在浏览器和Node.js中发送数据请求。在Vue项目中使用Axios进行数据请求可以方便快捷地实现前后端交互。下面我们将介绍Axios在Vue项目中的封装步骤。 1. 安装Axios 打开终端,通过npm安装Axios: npm install axios 2. 创建Axios服务 在Vue项目中,可…

    Vue 2023年5月28日
    00
  • vue-router 4使用实例详解

    下面是“vue-router 4使用实例详解”的完整攻略。 一、前置知识: Vue.js框架的基础使用,Vue组件、生命周期等基础知识。 Vue-Router的基础使用方法,可以参考Vue-Router官网。 对ES6的基础了解。 二、vue-router 4使用实例 1. 安装 vue-router 使用npm安装Vue Router: npm insta…

    Vue 2023年5月28日
    00
  • 错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?

    针对错误码NET::ERR_CERT_DATE_INVALID,我们可以按照以下攻略进行解决。 1. 确认证书是否已过期 这个错误的原因通常是因为网站的 SSL/TLS 证书已过期。所以可以先尝试确认一下证书是否确实已经过期。方法是: 在 Chrome 的地址栏输入被判定错误的网址; 点击后面的“高级”; 在“安全性”模块中点击“证书”; 在弹出的“证书”窗…

    Vue 2023年5月28日
    00
  • Template ref在Vue3中的实现原理详解

    下面是针对 “Template ref在Vue3中的实现原理详解” 的完整攻略。 什么是 Template ref? Template ref 是 Vue 组件中用来获取子组件或 HTML 元素的引用的方式,在 Vue2 中我们可以通过 $refs 对象或 $refs 属性来获取对应的引用。如下所示: <template> <div ref…

    Vue 2023年5月27日
    00
  • Vue.js实现的购物车功能详解

    下面是“Vue.js实现的购物车功能详解”的完整攻略。 确定需求 在开始Vue.js实现购物车功能之前,我们需要先明确我们的需求,包括: 需要展示商品列表; 需要将商品添加到购物车中; 需要展示购物车中的商品列表; 需要对购物车中的商品进行增删操作; 需要实时展示购物车总价。 准备工作 实现此功能需要准备以下工作: 安装Vue.js的开发环境; 准备好商品数…

    Vue 2023年5月27日
    00
  • vue项目中实现图片预览的公用组件功能

    下面我将为你详细讲解在Vue项目中实现图片预览的公用组件功能的完整攻略。 背景 图片预览是我们在Vue开发中常常需要用到的功能,但很多时候我们需要在多个页面上用到,所以我们需要将其进行封装为公用组件。 实现方式 第一步:安装插件 我们可以使用vue-preview插件来实现图片预览的功能,该插件支持缩小、放大、逆时针旋转、顺时针旋转、删除功能,使用比较方便。…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部