44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
|
import type NProgress from 'nprogress';
|
|||
|
|
|||
|
// 创建一个NProgress实例的变量,初始值为null
|
|||
|
let nProgressInstance: null | typeof NProgress = null;
|
|||
|
|
|||
|
/**
|
|||
|
* 动态加载NProgress库,并进行配置。
|
|||
|
* 此函数首先检查是否已经加载过NProgress库,如果已经加载过,则直接返回NProgress实例。
|
|||
|
* 否则,动态导入NProgress库,进行配置,然后返回NProgress实例。
|
|||
|
*
|
|||
|
* @returns NProgress实例的Promise对象。
|
|||
|
*/
|
|||
|
async function loadNprogress() {
|
|||
|
if (nProgressInstance) {
|
|||
|
return nProgressInstance;
|
|||
|
}
|
|||
|
nProgressInstance = await import('nprogress');
|
|||
|
nProgressInstance.configure({
|
|||
|
showSpinner: true,
|
|||
|
speed: 300,
|
|||
|
});
|
|||
|
return nProgressInstance;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 开始显示进度条。
|
|||
|
* 此函数首先加载NProgress库,然后调用NProgress的start方法开始显示进度条。
|
|||
|
*/
|
|||
|
async function startProgress() {
|
|||
|
const nprogress = await loadNprogress();
|
|||
|
nprogress?.start();
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 停止显示进度条,并隐藏进度条。
|
|||
|
* 此函数首先加载NProgress库,然后调用NProgress的done方法停止并隐藏进度条。
|
|||
|
*/
|
|||
|
async function stopProgress() {
|
|||
|
const nprogress = await loadNprogress();
|
|||
|
nprogress?.done();
|
|||
|
}
|
|||
|
|
|||
|
export { startProgress, stopProgress };
|