vue 全局loading的思路和方法

2023-11-18

Vue 全局 loading 的实现思路一般是在 Vue 实例中添加一个 loading 组件,通过控制该组件的显示和隐藏来实现全局 loading 的效果。

具体思路如下:

  1. 创建一个全局的 Vue 组件 Loading,该组件用于显示 loading 状态。
    在这里插入图片描述
<template>
  <div class="loader" v-show="visible">
    <div class="inner one"></div>
    <div class="inner two"></div>
    <div class="inner three"></div>
    <!-- <p class="loader_text">加载中... ...</p> -->
  </div>
</template>

<script>
export default {
  data() {
    return {
      // visible: false,
    };
  },
  props: {
    visible: Boolean,
  },
  methods: {
    // show() {
    //     console.log("显示loading");
    //   this.visible = true;
    // },
    // hide() {
    //     console.log("隐藏loading");
    //   this.visible = false;
    // },
  },
  mounted() {
    this.$nextTick(() => {
      this.visible = false;
    });
  },
};
</script>

<style scoped>
.loader {
  position: fixed;
  top: calc(50% - 150px);
  left: calc(50% - 82px);
  width: 164px;
  height: 164px;
  border-radius: 50%;
  perspective: 800px;
}

.inner {
  position: absolute;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.inner.one {
  left: 0%;
  top: 0%;
  animation: rotate-one 1.4s linear infinite;
  border-bottom: 6px solid #0060ca;
}

.inner.two {
  right: 0%;
  top: 0%;
  animation: rotate-two 1.4s linear infinite;
  border-right: 6px solid #ffbf00;
}

.inner.three {
  right: 0%;
  bottom: 0%;
  animation: rotate-three 1.4s linear infinite;
  border-top: 6px solid #29dcf1;
}

@keyframes rotate-one {
  0% {
    transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
  }
  100% {
    transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
  }
}

@keyframes rotate-two {
  0% {
    transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
  }
  100% {
    transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
  }
}

@keyframes rotate-three {
  0% {
    transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
  }
  100% {
    transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
  }
}
.loader_text {
  font-size: 25px;
  color: #0060ca;
  text-align: center;
  padding-top: 190px;
}
</style>

  1. 创建一个js文件 loading.js
import Vue from "vue";
import componentLoading from "../../components/overallLoading";

const comLoading = Vue.extend(componentLoading);

const instance = new comLoading({
    el: document.createElement("div"),
});

instance.visible = false;
const loading = {
    show() {
        instance.visible = true;
        document.body.appendChild(instance.$el);
    },
    hide() {
        instance.visible = false;
    },
};
export default {
    install() {
        if (!Vue.$loading) {
            Vue.$loading = loading;
        }
        Vue.mixin({
            created() {
                this.$loading = Vue.$loading;
            },
        });
    },
};

  1. 在 main.js 中注册 Loading 组件,并挂载到 Vue 实例上。
// 全局引入loading
import loadong from "./assets/js/loading";
Vue.use(loadong);

new Vue({
  el: '#app',
  render: h => h(App)
});

在需要显示 loading 的地方,调用全局方法 $loading.show(),该方法通过修改 loading 组件的状态来显示 loading。
在需要隐藏 loading 的地方,调用全局方法 $loading.hide(),该方法通过修改 loading 组件的状态来隐藏 loading。

全局使用:
	this.$loading.show();
    this.$loading.hide();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue 全局loading的思路和方法 的相关文章

  • Javascript图像编辑插件

    在哪里可以找到 Javascript 或 jQuery 图像编辑器插件 用户可以单击图像进行编辑 并且该插件允许他们进行裁剪 调整大小 旋转 翻转等 Pixastic http pixastic com lib 不再活跃 和CamanJS
  • 开玩笑错误意外的令牌...(ES6)

    每当我在命令行中运行 jest 时 都会收到以下错误 Test suite failed to run Users
  • 如何限制 Chrome 中的最大文本区域宽度和高度或如何禁用文本区域调整大小

    Chrome 允许通过在右下角添加文本区域来调整文本区域的大小 但有时这种移动可能会破坏页面的设计 所以我想知道如何限制该操作的最大和最小宽度 即如何完全禁用该功能和thml javascript css在页面上 您可以使用 resize
  • 应该使用encodeURI吗?

    javascript 的encodeURI 函数有任何有效用途吗 据我所知 当您尝试发出 HTTP 请求时 您应该 完整的 URI 您想要放入 URI 中的某些片段 可以是 unicode 字符串或 UTF 8 字节序列 在第一种情况下 显
  • 在设置后用 Javascript 替换 'var' css 属性

    我有一个元素 其上设置了 var 属性 如下所示 div class divwithbackground div CSS divwithbackground after background image var page header se
  • ECMAScript 6 类中的 getter 和 setter 有何用途?

    我对 ECMAScript 6 类中 getter 和 setter 的意义感到困惑 什么目的 下面是我参考的一个例子 class Employee constructor name this name name doWork return
  • 如何对像 Excel Pivot 这样两个键必须匹配的数组求和?

    我尝试对 Datum 和 Material 必须匹配的所有 Menge 和 Fehler 值求和 结果应类似于 Excel 数据透视表 到目前为止 这是我的代码 但我不知道如何添加也必须匹配的第二个键 Material 我希望你能理解我试图
  • 当key未知时如何获取js对象中的属性值

    我有一个对象数组 a 81 25 p 81 25 81 26 p 81 26 我想循环遍历数组并获取值p在每个元素中 for var key in a console log a key outputs 81 25 Object How d
  • 如何使用javascript将视频文件转换为字符串?

    我在 signalR 工作 我想通过将视频文件拆分为不同部分来将视频文件从一个客户端发送到另一个客户端 我已经通过分割图像源数据发送图像并在另一个客户端上接收该图像 document getElementById fileUpload ad
  • AngularJS 服务并承诺最佳实践

    我有一个 AngularJS 应用程序services 调用 http资源并返回promise我在控制器中解决了这个问题 这是我正在做的事情的示例 app service Blog function http q var deferred
  • 从本地 html/javascript 网站插入 mySQL 数据库

    我正在尝试做什么 我的程序的目的是插入数据local HTML JS网站变成online 非本地 mySQL数据库 到目前为止我尝试过的 我试图用来实现此目的的原始方法是让我的本地网站使用 javascript 通过在线发布数据PHP文件
  • es6-module 默认导出导入为未定义

    我不确定我在这里缺少什么 我正在使用 jspm 和 es6 module loader 开发一个项目 我有一个模块定义如下 import hooks from hooks import api from api import tools f
  • Nodejs 异步 Promise 队列

    我需要使用速率受限的 API 例如 我一秒钟只能进行 10 个 API 调用 因此我需要等待当前秒结束才能进行另一个 API 调用 为了实现这一目标 我想创建一个可以自行管理的异步队列 它的主要功能是让我向队列添加一个新的 Promise
  • 检查是否安装了 Google Analytics 或 Universal Analytics?

    我正在尝试通过 JavaScript 来确定是否加载了 Google Analytics 或 Universal Analytics 一些客户仍在使用旧的 Google Analytics 我们希望推出一个收集数据的 JavaScript
  • 分配函数后如何删除 onmouseout 事件?

    我有一个问题 我正在为 onmouseout 事件分配一个函数 但运行该事件后 我需要将其删除 将非常感谢您的帮助 这取决于你的代码 如果你用 d3 这样做 那么你可以说 在 onmouseout 事件函数中 element on mous
  • 反转比例函数

    这对我来说很有趣 看下面的D3代码 var scale d3 scale linear domain 100 500 range 10 350 scale 100 Returns 10 scale 300 Returns 180 scale
  • 如何从 Visual Studio Code API 打开浏览器

    我只是在探索一种从用于开发扩展的 Visual Studio Code API 打开默认浏览器的方法 以下是我的代码 var disposable vscode commands registerCommand extension brow
  • 阻止 PM2 上不同时运行的请求

    在我的 Express 应用程序中 我在应用程序中定义了 2 个端点 一种用于 is sever up 检查 另一种用于模拟阻塞操作 app use status req res gt res sendStatus 200 app use
  • 如何在 getStaticPaths 内添加 params 值数组

    我有一个页面 其结构如下 read slug number 我想要得到slug每个对应的值number in the getStaticPaths这是代码 export async function getStaticPaths const
  • 调用一个从 AngularJS 表达式本地计算值的函数是不是很糟糕?

    我读了关于使用范围的一些 AngularJS 陷阱的文章 http thenittygritty co angularjs pitfalls using scopes 并且它指出您不应在表达式中使用函数 并且我知道每次框架认为需要时都可能会

随机推荐

  • Win7-64bit下MapX的安装和使用

    这两天碰到个VC MapX做飞机航迹回放与显示的单子 虽然没有接下来 今天下午还是学习了一下MapX的配置 在这留下一个记号 以备日后再用 MapX在CDSN上完整的安装包链接 http download csdn net detail f
  • Openfire 中SASL的认证方式之:PLAIN,DIGEST-MD5,anonymous

    SASL 的认证方式包括 1 PLAIN plain是最简单的机制 但同时也是最危险的机制 因为身份证书 登录名称与密码 是以base64字符串格式通过网络 没有任何加密保护措施 因此 使用plain机制时 你可能会想要结合tls 2 DI
  • dedecms怎样调用指定id文章?

    前面我们聊了帝国cms如何调用指定id的文章到首页 作为同行的织梦cms应该也是可以实现的吧 那么 dedecms怎样调用指定id文章呢 使用idlist直接调用指定的ID这样的方法是比较好的 官方给与的说明是 idlist 提取特定文档
  • PDB符号文件与Windows下利用Windbg 分析dump

    PDB简介 跟踪提供程序 例如应用程序或驱动程序 的程序数据库 PDB 符号文件包含用于对跟踪消息设置格式的指令 以便可以按照用户可读的形式显示这些消息 跟踪消息格式设置指令属于跟踪提供程序源代码的一部分 WPP 预处理器从代码中提取这些指
  • 【Spring应用】SPEL表达式使用

    Spring框架中的SpEL Spring Expression Language Spring表达式语言 是一种基于字符串的表达式语言 用于支持在运行时动态地计算表达式的值 它可以在Spring的多个模块中使用 如Spring MVC S
  • 2023年4月计划(ue视频教程)

    虽然不跳槽 但是也面试了两家UE小公司 看看差距 一家是家装的 两个面试官问不出什么问题来 出价试用期1万五 转正后看表现 我 还不如自己学着玩 另一家是做模拟训练的 多人游戏把我问倒了 确实没学过 说明局域网的还是比较重要的 所以还要抓紧
  • Git 中的.gitignore文件的作用及配置

    文章目录 前言 一 gitignore文件是什么 二 如何配置 gitignore文件 三 gitignore文件在使用中的问题 总结 前言 在使用Git的时候 有时候会在Git的工作区目录中产生一个 gitignore文件 该篇来简单介绍
  • 微信开放平台的第三方平台微信开放平台帐号管理接口开发的两个错误

    陈永鹏的微博 陈永鹏的csdn博客地址 http blog csdn net chenyoper 陈永鹏的博客园地址 http www cnblogs com Yoperchen 开发微信开放平台下的第三方微信开放平台 好绕口吧 调用创建开
  • 远程桌面功能:从本机访问虚拟机桌面

    通过windows的远程桌面功能 实现从本机访问虚拟机桌面 一 前言 在学习本篇文章技术的同时要做好以下准备工作 1 安装VMware虚拟机 VMware12或者VMware14 2 在虚拟机上安装Windows操作系统 Windows7或
  • 【Kubernetes存储篇】持久化存储PV、PVC详解

    文章目录 一 PV PVC持久化存储理论 1 PV PVC是什么 2 PV的供应方式 3 PV PVC的回收策略 二 案例 PV PVC持久化存储案例演示 1 搭建NFS服务端 2 创建PV 并使用NFS共享存储 3 创建PVC 并和PV绑
  • 直接内存(堆外内存)

    直接内存 堆外内存 直接内存 堆外内存 指的是Java应用程序通过直接方式从操作系统中申请内存 这个差别与之前的堆 栈 方法区 那些内存都是经过了虚拟化 所以严格来说 这里是指直接内存 直接内存有哪些 使用了 Java 的 Unsafe 类
  • cmake 解决错误:Cannot specify link libraries for target

    最近研究cmake来配置Qt的编译方法 写好了CMakeLists txt通过编译后却无法链接成功 由于用的是mac osx 还以为是不同系统链接库出了问题 检查他给出的路径 变量 QT LIBRARIES 的内容 为 Volumes De
  • 敬请各位付费专栏的订阅者花点时间移步帮忙做个调查,谢谢!

    老猿有2个付费专栏 一个是使用PyQt开发图形界面Python应用 一个是moviepy音视频开发专栏 由于CSDN付费专栏订阅是不区分专栏的 老猿无法区分是因为哪个专栏得到大家认可的 因此敬请大家配合做个调查 非常感谢 大家调查回复时 根
  • openslide对.svs切成tile,并显示的记录

    仅作为记录 大佬请跳过 文章目录 直接上代码 参考 直接上代码 有 svs图和相应的python包 openslide matplotlib 后可直接运行 import openslide import matplotlib pyplot
  • 算法题记录【华为od】服务中心的最佳位置

    题目描述 思路分析 在我的理解就是查找均值 代码解析 let input1 2 input2 0 10 10 20 20 30 30 40 40 50 sum 0 res result let len input2 length input
  • 测试常见bug

    一 某公司发现 价值100元的商品 在该公司网上商城被以0 01元买走了很多 攻城狮们火速定位 问题原因很快被找到了 原来是购买商品接口的bug 该接口需要3个参数 商品id 商品单价 购买数量 而服务器根据接口传过来的商品单价 0 01元
  • 中国省份城市0-N编号

    1 中国省份0 N编号 上海 1 云南 2 内蒙古 3 北京 4 台湾 5 吉林 6 四川 7 天津 8 宁夏 9 安徽 10 山东 11 山西 12 广东 13 广西 14 新疆 15 江苏 16 江西 17 河北 18 河南 19 浙江
  • 热修复——Bugly让热修复变得如此简单

    一 简述 在上一篇 热修复 Tinker的集成与使用 中 根据Tinker官方Wiki集成了Tinker 但那仅仅只是本地集成 有一个重要的问题没有解决 那就是补丁从服务器下发到用户手机上 如果你团队中的后台开发人员实力够强 那么完全可以自
  • 蓝以中老师《高等代数》第01章:代数学的经典课题,笔记

    蓝以中老师 高等代数 第01章 代数学的经典课题 笔记 如下
  • vue 全局loading的思路和方法

    Vue 全局 loading 的实现思路一般是在 Vue 实例中添加一个 loading 组件 通过控制该组件的显示和隐藏来实现全局 loading 的效果 具体思路如下 创建一个全局的 Vue 组件 Loading 该组件用于显示 loa