Vue3 + Ts实现NPM插件 - 定制loading

news2024/11/17 11:53:25

目录

  • 你的 Loading
    • 🤖 安装
    • 🛹 简介苍白请 您移步文档:
    • ✈️ 使用方法
      • 🛠️ 配置 loading 类型
      • 🎲 定制 loading 色彩
    • 💡 注意事项

请添加图片描述 前期回顾

你的 Loading

开箱即可用的 loading,
说明:vue3-loading 是一个方便在 Vue 3 项目中使用的加载指示器组件的 npm 插件。它允许您轻松地在项目中添加加载动画,提升用户体验。

🤖 安装

npm install vue3-loading-plug

or

pnpm install vue3-loading-plug

🛹 简介苍白请 您移步文档:

  • 一键轻松看-尝试刷新页面将自动随机展示 loading
  • 一键快阅文档

✈️ 使用方法

  • 📒 说明:

内置两大类 loading 【可自行配置】

​ 一、 Loading 是 大 loading 可以用于刷新项目页面、路由跳转 。在路由中引入一次 即可全局生效,极简配置

​ 二、smallLoading 是小圆圈带加载进度 loading,一般用于接口请求展示。可以请求拦截器中开启,全局接口生效,极简配置

在你的主应用程序入口文件(例如 main.js)中,导入并使用 loading :

import Loading from "vue3-loading-plug";
app.use(Loading).mount("#app");
  • 🤖 高级用法

🛠️ 配置 loading 类型

你可以在安装插件时传入一个配置对象。

这个配置对象有一个 loadingType 属性,这个属性决定了使用哪种类型的 loading 组件。

如果你不传入 loadingType,那么将会随机选择一个 loading 组件。

app.use(Loading, {
  loadingType: 2  // 使用第二种类型的loading组件
});

🎲 定制 loading 色彩

  • 我们目前更新了 7 款 loading 组件,每一款都有自己的默认颜色,也可以如下自定制。

这个配置对象还有一个 customized 属性,这个属性的值决定了 loading 组件的颜色展示和遮罩的色彩呈现。(它们都是非必填)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

app.use(Loading, {
	loadingType: 1,
	customized: {top: "#54038a",left: "#05b631",right: "#eeaff7"},
});
app.use(Loading, {
	loadingType: 2,
	/*
	 我定制了loading颜色为红色、遮罩层为绿色
	 通常我们不需要定制mask、loading ,颜色都具备默认值
	*/
	customized: { color: "red", mask: "green" },
});
app.use(Loading, {
	loadingType: 3,
	customized: { mask: "rgba(126, 128, 117, 0.5)" },
});
app.use(Loading, {
	loadingType: 4,
	customized: { ball: "red", dot: "#fff", bar: "#000" },
});
app.use(Loading, {
	loadingType: 5,
	customized: { color: "#f4038a" },
});
app.use(Loading, {
	loadingType: 6,
	customized: { color: "red" },
});
app.use(Loading, {
	loadingType: 7,
	customized: { color: "#212121" },
});

如果是 ts 请在 global.d.ts 加入 类型

declare module "vue3-loading-plug";

router

const hideLoading = () => app.config.globalProperties.$Loading?.hideLoading;
const showLoading = () => app.config.globalProperties.$Loading?.showLoading();

router.beforeEach((to, from, next) => {
	if (to.meta.loading) showLoading();
	next();
});

router.afterEach((to) => {
	// 第二个参数为关闭loading的时间,无参即是根据上下文环境300ms关闭
	if (to.meta.loading) hideLoading()(400);
});

scrvies

const hideLoading = () => app.config.globalProperties.$smallLoading.hideLoading;
const showLoading = () =>
	app.config.globalProperties.$smallLoading.showLoading();
let onProgress = () => app.config.globalProperties.$smallLoading.onProgress;

// 请求拦截器
service.interceptors.request.use(
	(config) => {
		// 在发送请求之前做些什么?
		showLoading();
		config.onDownloadProgress = (progressEvent: any) => {
			let percentCompleted = Math.floor(
				(progressEvent.loaded * 100) / progressEvent?.total
			);
			onProgress()(percentCompleted);
		};
		return config;
	},
	(error) => {
		// 对请求错误做些什么?
		// 第二个括号参数为空时,200ms后隐藏loading, (为了展示loading进度100%效果)
		hideLoading()();
       // hideLoading()(true); // 传入true时,不会延迟隐藏loading
		return Promise.reject(error);
	}
);

// 响应拦截器
service.interceptors.response.use(
	(response) => {
		// 对响应数据做点什么? 这里只返回成功响应数据!
		hideLoading()();
		return response.data;
	},
	(error) => hideLoading()();
);

💡 注意事项

这个插件使用了动态导入(import(‘xx.vue’))和 Map 来提高性能,因此需要一个支持这些特性的环境。如果你的环境不支持这些特性,你可能需要使用 polyfill 来提供这些特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1073264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当数字孪生与智慧园区结合,能够实现什么样的应用?

随着数字化进程的加深,数字孪生技术也越来越为大家所重视。那么,数字孪生技术在智慧园区中能够发挥什么样的作用?本文将根据山海鲸可视化智慧园区三维可视化系统,为大家进行说明。 一、基本概念 为了方便大家了解,这…

基于Springboot实现学生毕业离校系统项目【项目源码+论文说明】分享

基于Springboot实现学生毕业离校系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,新生宿舍管理系统当然也不能排除在外。新生宿舍管理系统是以实际运用为开发背景…

使用echarts绘制3DChart图表

使用3DChart需要安装echarts和echarts-gl。否则图标不显示。 版本要对应 “echarts”: “^5.2.2”, “echarts-gl”: “^2.0.9”, main.js // main.js 引入echarts方式如下 import echarts-gl //如果使用3DEchart图标需要下载个引入对应版本的 import * as echarts from echa…

旅游网站HTML

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>旅游网</title> </head> <body><!--采用table编辑--> <!--最晚曾table,用于整个页面那布局--><table width&q…

【星海出品】ansible入门(四)playbook kolla开源例子

简介 Kolla-ansible项目提供一个完整的Ansible Playbook&#xff0c;来部署Docker的镜像&#xff0c;再完成openstack组件的自动化部署。并提供all-in-one和multihost的环境。 安装后会将kolla-ansible内置为一个shell启动文件。 kolla-ansible: /usr/local/bin/kolla-ansible…

获取手机号归属地详情,精准高效的API接口服务

在现代社会中&#xff0c;通讯工具如手机成为了人们生活中不可缺少的部分。但是&#xff0c;有时我们会收到陌生电话&#xff0c;需要了解电话号码的归属地以判断其可信性。这个时候&#xff0c;获取手机号归属地的API接口服务就会发挥重要作用。 一、API接口服务简介 API接口…

解决video层级过高在app的问题

直接上代码,写一个组件 <template><iframe :onload"inner"></iframe> </template> <script>export default {props: {src: {}},data() {return {inner: }},created() {this.inner this.contentWindow.document.body.innerHTML <v…

一文搞懂二叉树后序遍历的三种方法

系列文章&#xff1a; 相关题目&#xff1a; 145. 二叉树的后序遍历 先序遍历结果为&#xff1a;4 5 2 6 7 3 1 总体上分为两种框架&#xff0c;递归框架和非递归框架&#xff0c;递归框架又分为两种思路&#xff1a;分解思路和遍历思路。 递归 1、分解思路 【分解为子问题】…

直线模组的应用场景

直线模组是一种由直线导轨、滑块、驱动部件等组成的直线运动系统&#xff0c;具有高精度、高速度、高效率等特点。直线模组被广泛应用于各种机械设备中&#xff0c;以下是其主要的应用场景&#xff1a; 1、数控机床&#xff1a;直线模组是数控机床中的重要组成部分&#xff0c;…

过滤器的实现及其原理责任链设计模式

Filter过滤器 过滤器的应用 DeptServlet,EmpServlet,OrderServlet三个业务类的业务方法执行之前都需要编写判断用户是否登录和解决的中文乱码的代码,代码没有得到重复利用 Filter是过滤器可以用来编写请求的过滤规则和多个Servlet都会执行的公共代码,Filter中的业务代码既可…

docker安装Jenkins完整教程

1.docker拉取 Jenkins镜像并启动容器 新版本的Jenkins依赖于JDK11 我们选择docker中jdk11版本的镜像 # 拉取镜像 docker pull jenkins/jenkins:2.346.3-2-lts-jdk11 2.宿主机上创建文件夹 # 创建Jenkins目录文件夹 mkdir -p /data/jenkins_home # 设置权限 chmod 777 -R /dat…

【C/C++】指针与函数传参

1、值传递 2、地址传递 注意&#xff1a;如果实参是一个普通变量&#xff0c;地址传参的话就需要形参是一级指针&#xff0c; 如果实参是一个一级指针&#xff0c;地址传参的话就需要形参是一个二级指针&#xff0c; 以此类推 3、传数组&#xff1a; 将数组作为参数传递给函…

DATA URL:嵌入 URL 中的数据资源

文章目录 参考环境DATA URL概念结构DATA URL 的优缺点优点缺点 DATA URL 与图片获取图片的 Base64 编码结果在 HTML 中应用 DATA URL 以展示图片 DATA URL 与 allow_url_fopen 及 allow_url_include 配置项allow_url_fopen 配置项allow_url_include 配置项allow_url_fopen 与 a…

Word中设置粘贴为纯文本的自定义快捷键

1、依次点击左上角 File(文件)->options(选项)-> Customize ribbon(自定义功能区)->Customize (自定义快捷键) 2、选择 All commands(所有命令)->PasteTextOnly(粘贴纯文本)&#xff0c; 在 Press new shortcut key (键入新快捷键)中输入自己喜欢的快捷键&#xff…

华为云云耀云服务器L实例评测|华为云上的CentOS性能监测与调优指南

目录 引言 ​编辑1 性能调优的基本要素 2 性能监控功能 2.1 监控数据指标 2.2 数据历史记录 2.3 多种统计指标 3 性能优化策略 3.1 资源分配 3.2 磁盘性能优化 3.3 网络性能优化 3.4 操作系统参数和内核优化 结论 引言 在云计算时代&#xff0c;性能优化和调优对于…

视觉效果绝佳的制作电子宣传册的网站

随着数字技术与设计理念的融合&#xff0c;电子宣传册不再是平面的文字与图片堆砌&#xff0c;而是通过多媒体元素、动画效果和交互性功能营造出沉浸式的阅读体验。小编向大家推荐一款名为FLBOOK的制作电子宣传册的网站。 首先&#xff0c;打开FLBOOK电子杂志制作网站然后点击模…

长城网络靶场第五题,流量包分析

关卡描述&#xff1a;1.小利访问最频繁的网站是&#xff1f;&#xff08;只填写一级域名&#xff09; 因为是一级域名所以只要 gamersky.com 关卡描述&#xff1a;2.小利的IP是多少&#xff1f; 看数据包很明显 标准答案&#xff1a;192.168.12.126 关卡描述&#xff1a;3.黑…

Win11通过注册表或者kernel32.dll的SetUserGeoName等方式设置国家或地区后重启过一会就自动变回原来的值...

最近同事 panwangvie 尝试通过代码设置国家或地区&#xff0c;尝试过注册表或者kernel32.dll的SetUserGeoName等方式设置&#xff0c;重启过一会就自动变回原来的值 我也尝试了以下方式均不行&#xff1a; 1. 一开始怀疑是自动时钟影响&#xff0c;所以把自动时钟关闭了 2. 然后…

c++桥接模式,中介者模式应用实现状态跳转

上图为例&#xff0c;按上述两种方式实现的模式跳转&#xff0c;如果在原先的三种模式之间再增加多一种模式&#xff0c;就会引起每个模式都会要求改变&#xff0c;并且逻辑混乱&#xff0c;因此更改模式为桥接中介者访问&#xff0c;将抽象和实现分离&#xff0c;实现之间采用…

STM32单片机裸机程序怎么处理大量网络数据?

STM32单片机裸机程序怎么处理大量网络数据? 无论是在中断中处理数据&#xff0c;还是在主循环里处理数据&#xff0c;你用于处理数据的时间是不变的。 你可以算一下&#xff0c;处理数据的时间&#xff08;速率&#xff09;和单片机的处理能力相差有多大&#xff0c;单片机是…