vue3使用nprogress实现全局loading进度条

1、npm安装nprogress
在npm首页搜索nprogress并进行安装

npm i nprogress

2、main.js引入css样式
安装后,在node_modules中可以找到nprogress,在main.js中引入对应的css文件

import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
import 'nprogress/nprogress.css'

app.mount('#app')

3、封装显示和隐藏loading方法
由于是全局loading,每个页面在加载中和加载完成时都得使用nprogress,因此可以封装一个js

import nprogress from "nprogress";

//显示全屏loading
export function showFullLoading(){
  nprogress.start()
}
//隐藏全屏loading
export function hideFullLoading(){
  nprogress.done()
}

4、全局前置守卫和全局后置守卫调用loading方法
由于每个页面在加载中时都得显示loading,因此可以在全局前置守卫中调用显示loading方法
由于每个页面在加载完毕后都得隐藏loading,因此可以在全局后置守卫中调用隐藏loading方法

import {router} from '~/router'
import { showFullLoading, hideFullLoading } from "~/composables/util";

router.beforeEach((to, from, next) => {
  showFullLoading()
})

router.afterEach((to, from) => {
  hideFullLoading()
})

5、自定义全局loading进度条样式
在完成上述步骤以后,可以运行项目,F12来查看进度条的样式是哪一个,然后在app.vue中自己修改想要的样式,例如#nprogress .bar就是对应的进度条样式,可以修改颜色、高度等,注意修改的时候后面得要加!important

<style>
#nprogress .bar{
  background-color: #f4f4f4!important;
  height: 3px!important;
}
</style>

6、最终实现效果
该效果是截取vueuse中的nprogress ,具体的可以自己动手试一试
在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值