vue之项目中如何封装loading加载效果

在Vue项目中,封装loading加载效果可以提高页面交互体验,用户操作体验更加流畅。

以下是封装loading加载效果的完整攻略:

1. 创建全局Loading组件

我们可以使用Vue的全局组件来封装loading效果。首先,创建一个loading组件,例如:

<template>
  <div class="loading-mask">
    <div class="loading-spinner"></div>
  </div>
</template>

<style>
.loading-mask {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 9999;
}

.loading-mask.show {
  opacity: 1;
}

.loading-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 4px solid rgba(255, 255, 255, 0.9);
  border-left-color: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  width: 32px;
  height: 32px;
  animation: loading-spinner 0.8s linear infinite;
}

@keyframes loading-spinner {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
</style>

该组件包含一个半透明的遮罩,以及一个旋转的loading图标。默认情况下,该组件不显示。

2. 注册全局Loading组件

我们需要将loading组件注册为全局组件,这样就可以在任何地方使用该组件。

import Vue from 'vue';
import Loading from './Loading.vue';

// 注册全局组件
Vue.component('Loading', Loading);

这样,我们就可以在任何Vue组件中使用<Loading />标签来显示loading效果了。

3. 在全局Vue实例中添加loading状态

为了实现全局loading效果,我们需要在Vue实例中添加loading状态。

import Vue from 'vue';
import Loading from './Loading.vue';

// 注册全局组件
Vue.component('Loading', Loading);

const app = new Vue({
  el: '#app',
  data: {
    loading: false, // 加载状态
  },
});

我们将loading属性初始化为false,表示加载状态为关闭。

4. Loading绑定到路由导航事件上

我们需要在每次路由导航时,自动开启和关闭loading效果。

import Vue from 'vue';
import Loading from './Loading.vue';

// 注册全局组件
Vue.component('Loading', Loading);

const app = new Vue({
  el: '#app',
  data: {
    loading: false, // 加载状态
  },
});

// 路由导航前
router.beforeEach((to, from, next) => {
  // 开启loading效果
  app.loading = true;
  next();
});

// 路由导航后
router.afterEach(() => {
  // 关闭loading效果
  app.loading = false;
});

在每次路由导航前,我们将loading状态设置为true,表示正在加载。在路由导航后,我们将loading状态设置为false,表示加载已完成。

5. 使用全局Loading组件

现在我们已经可以使用全局loading组件来显示loading效果了。在需要显示loading效果的组件中,可以按如下方式使用:

<template>
  <div>
    <!-- 其他组件内容 -->
    <Loading v-if="loading" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      loading: false,
    };
  },
  methods: {
    fetchData() {
      // 开始加载数据
      this.loading = true;
      // 获取数据,此处省略
      // 关闭loading
      this.loading = false;
    },
  },
};
</script>

在该组件中,我们使用<Loading v-if="loading" />标签来引入全局loading组件,并使用loading属性来控制其显示和隐藏。

示例1:CodePen 压测官

示例2:Vue Element Admin

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue之项目中如何封装loading加载效果 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • Linux文件查找命令总结(下篇)

    来详细讲解一下“Linux文件查找命令总结(下篇)”的完整攻略。 标题 Linux文件查找命令总结(下篇) 内容概述 本文主要介绍了Linux系统下常用的文件查找命令,包括find、which、whereis、locate等命令。这些命令可以在命令行中快速查找指定文件、目录和程序的位置。对于需要查找文件的任务,这些工具可以极大地提高我们的工作效率。本文将详细…

    other 2023年6月26日
    00
  • 如何用JavaScript实现功能齐全的单链表详解

    下面是详细讲解如何用JavaScript实现功能齐全的单链表的攻略。 确定单链表的基本结构 单链表是一种数据结构,它由一个个节点组成。每个节点都包含一个数据域和一个指针域,指针指向下一个节点。在JavaScript中,可以使用对象来表示单链表的节点,其基本结构如下: // 定义单链表节点对象 function ListNode(val) { this.val…

    other 2023年6月27日
    00
  • 详解Vue之父子组件传值

    我们来详解Vue之父子组件传值的完整攻略。 在Vue中,父组件可以通过props向子组件传递数据,子组件可以通过$emit方法向父组件发送事件。这两种方式能够解决父组件和子组件数据的传递问题。 父组件向子组件传值 父组件通过props向子组件传递数据,子组件通过props接收父组件传递过来的数据。下面是一个示例: <!– 子组件 Child.vue …

    other 2023年6月27日
    00
  • 如何修改select标签的默认下拉箭头样式?

    在 HTML 中,<select> 标签用于创建下拉列表。默认情况下,下拉列表的样式是由浏览器决定的,包括下拉箭头的样式。但是,我们可以使用 CSS 来修改下拉箭头的样式。下面是一个完整攻略,包含两个示例说明。 方法一:使用 ::after 伪元素 我们可以使用 CSS 中的 ::after 伪元素来修改下拉箭头的样式。具体步骤如下: 将 &lt…

    other 2023年5月8日
    00
  • 《以太坊 2.0 术语库》信标链、PoS、分片…接触以太坊 2.0 得先理解这些术语

    让我来详细讲解一下以太坊 2.0 的一些关键术语。 1. 信标链 Beacon Chain 信标链(Beacon Chain)是以太坊 2.0 的核心组成部分,它是一条新的区块链,负责协调网络中的 PoS 共识算法和分片技术。在信标链上,每个验证者账户都负责验证一部分交易,并参与共识过程。信标链的引入可以提高以太坊的交易吞吐量和安全性。 例如,假设一个以太坊…

    other 2023年6月27日
    00
  • 思科cisco路由器dhcp动态分配ip地址实现方法

    思科Cisco路由器DHCP动态分配IP地址实现方法攻略 介绍 动态主机配置协议(DHCP)是一种网络协议,用于自动分配IP地址和其他网络配置参数给网络上的设备。在思科Cisco路由器上,您可以配置DHCP服务器来实现动态分配IP地址的功能。下面是一个详细的攻略,介绍了如何在思科Cisco路由器上配置DHCP服务器。 步骤 步骤1:进入路由器配置模式 首先,…

    other 2023年7月31日
    00
  • c++错误:在’}’标记之前预期的primary-expression

    C++错误:在’}’标记之前预期的primary-expression攻略 在C++编程中,我们可能会遇到错误:在’}’标记之前预期的primary-expression。这个错误通常是由于语法错误或拼写错误起的。本攻略将介绍如何解决这个错误,并提供两个示例。 原因 在C++编程中,错误:’}’标记之前预期的primary-expression通常是由于以下…

    other 2023年5月9日
    00
  • 简单有效的关闭Win7自动更新重启提示的问题

    问题描述: 在Win7系统中,自动更新是很常见的,但是由于升级补丁需要重启系统,而每次重启前会频繁地出现自动更新重启提示,这样会干扰工作和学习。因此,如何关闭Win7自动更新重启提示成为一个需要解决的问题。 解决方案: 修改计算机组策略 Win7系统提供了修改计算机组策略的方式来关闭自动更新的重启提示。步骤如下: 按下Win+R键,打开运行窗口,输入gped…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部