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

目录

  • 你的 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时,不会延迟隐藏loadingreturn Promise.reject(error);}
);// 响应拦截器
service.interceptors.response.use((response) => {// 对响应数据做点什么? 这里只返回成功响应数据!hideLoading()();return response.data;},(error) => hideLoading()();
);

💡 注意事项

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

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

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

相关文章

基于多线程的Reactor模式的 回声服务器 EchoServer

记录下 一个线程专门用来接受accept获取客户端的fd 获取fd之后 从剩余的执行线程中 找到一个连接客户端数量最少的线程 然后将客户端的fd加入到这个线程中并通过EPOLL监听这个fd 线程之间通过eventfd来通信 将客户端的fd传到 对应的线程中 参考了MediaServer 引入…

【Vue面试题十七】、你知道vue中key的原理吗?说说你对它的理解

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:你知道vue中key的原理吗…

Android Studio 配置Git SVN忽略文件

在使用Android Studio进行版本控制时,经常会遇到需要忽略某些文件的情况,比如临时文件、编译生成的文件等。这些文件虽然在项目中存在,但不希望被加入到版本控制中。 在Android Studio中设置忽略文件 在Android Studio中,我们可…

关于网络协议的若干问题(二)

1、网络号、IP 地址、子网掩码和广播地址的先后关系是什么? 答:当在一个数据中心或者一个办公室规划一个网络的时候,首先是网络管理员规划网段,一般是根据将来要容纳的机器数量来规划,一旦定了,以后就不好…

Soul CEO张璐团队以用户安全为核心,探索社交平台安全治理新路径

“认同感”,是现代年轻人当下的核心社交需求之一,作为年轻人喜爱的新型开放式社交平台,Soul APP为年轻人们提供了一个自在表达、轻松互动的平台,为用户带来了志趣相投、精神共鸣的高质量网络连接。在Soul日活近千万的用户中,超过七成为Z世代年轻群体,如何能够为Z世代提供更安全…

sql 注入 文件读写 木马植入 远程控制

sql 注入 文件读写 木马植入 远程控制 一, 检测读写权限 查看mysql全局变量 SHOW GLOBAL VARIABLES LIKE %secure%secure_file_priv 空, 则任意读写secure_file_priv 路径, 则只能读写该路径下的文件secure_file_priv NULL, 则禁止读写二, 读取文件, 使用 load_file() 函数…

ArcGIS/GeoScene脚本:基于粒子群优化的支持向量机回归模型

参数输入 1.样本数据必须包含需要回归的字段 2.回归字段是数值类型 3.影响因子是栅格数据,可添加多个 4.随机种子可以确保每次运行的训练集和测试集一致 5.训练集占比为0-1之间的小数 6.迭代次数:迭代次数越高精度越高,但是运行时间越长…

NodeJs内置模块child_process

内置模块child_process子进程 写在前面 子进程是Nodejs的核心Api,如果你会shell命令,它会有非常大的帮助,或者你喜欢编写前端工程化工具之类,它也有很大的用处,以及处理CPU密集型应用。 创建子进程 Nodejs创建子进…

黑群晖video station评级问题

黑群晖video station评级问题 环境 群晖Version: 6.2.3-25423video station 2.4.10方法1,py文件 登录ssh,获取sudo权限 cd /var/packages/VideoStation/target/plugins/syno_themoviedbsudo vim search.py替换movie_data[vote_average] 替换为 round(movie_data[vote_avera…

【开题报告】如何借助chatgpt完成毕业论文开题报告

步骤 1:确定论文主题和研究问题 首先,你需要确定你的论文主题和研究问题。这可以是与软件开发、算法、人工智能等相关的任何主题。确保主题具有一定的研究性和可行性。 步骤 2:收集相关文献和资料 在开始撰写开题报告之前,收集相…

MYSQL 敏感数据加密后进行模糊查询

问题: 对于一些敏感数据,比如用户的手机号、身份证号、银行卡号之类进行加密处理,是一些系统的常用处理方式。但是这保证了数据的安全之外又诞生了另外一个问题,就是搜索这些信息的时候,模糊查询变得困难。 解决方案…

ACL访问控制列表的解析和配置

ACL的解析 个人简介 ACL - Access Control List 访问控制列表 策略 ------行为 允许/拒绝 ACL --包含两种 标准ACL 扩展ACL 标准ACL:只能针对源IP地址做限制 针对路由条目的限制 -路由策略 思科编号:1-99之间或1300-1999 扩展ACL:针对…

Java Spring Boot中的爬虫防护机制

随着互联网的发展,爬虫技术也日益成熟和普及。然而,对于某些网站来说,爬虫可能会成为一个问题,导致资源浪费和安全隐患。本文将介绍如何使用Java Spring Boot框架来防止爬虫的入侵,并提供一些常用的防护机制。 引言&a…

python每日一练(5)

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

黑马点评-06缓存雪崩问题(大量key失效)及其解决方案

缓存雪崩问题(大量key失效) 解决方案 缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库给服务器带来巨大压力 当我们批量导入缓存数据的时候可以给不同的Key的TTL添加随机值,让其在不同时间段分批失效利用Redis集群提高服务的可用性 使…

点云模板匹配

点云模板匹配是一种在点云数据中寻找特定形状或模式的方法。它通常用于计算机视觉和三维图像处理中,可以应用于物体识别、姿态估计、场景分析等任务。点云模板匹配的基本思想是将一个称为模板的小点云形状与输入的大点云进行匹配,以找到最佳的对应关系。…

Python笔记;库,包,模块

在Python中库没有官方说法。 是其他地方沿用过来的。 姑且认为他是一个包或多个包的集合。 包里有子包和模块。 模块以.py格式存储。 下图是一个例子,对于Robot包: import math a math.sqrt(9) 等价于 from math import * a sqrt(9) from math im…

(Vue3)大事记管理系统 首页

首页 先搭架子-用element-ui中的组件:container组件、layout组件 不知道的属性学会看文档! :default-active"$route.path" 配默认高亮菜单项 $route.path 字符串,等于当前路由对象的路径,如“/home/news $route…

分布式锁2:基于redis实现分布式锁

一 redis实现分布式锁 1.1 原理 setnxexpiredel 命令实现redis的分布式锁;其中 setnx 不存在则新增;存在则忽略。即先用setnx来抢锁,如果抢到之后,再用expire给锁设置一个过期时间,防止锁忘记了释放。例如&#xf…

mysql面试题33:Blob和text有什么区别

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Blob和text有什么区别 Blob和text是数据库中存储大文本数据的两种数据类型&#…