NProgress加载进度条

2022-07-15 22:18:38
2024-06-17 16:33:30

官网

language 复制代码
https://ricostacruz.com/nprogress

安装命令

shell 复制代码
npm i -S nprogress 

引用方法

main.ts入口文件引入 nprogress

shell 复制代码
import NProgress from 'nprogress' // 引入nprogress插件
import 'nprogress/nprogress.css'  // 这个nprogress样式必须引入

使用方法(多种方法)

axios请求

ts 复制代码
// axios请求拦截器
axios.interceptors.request.use(
  config => {
    NProgress.start() // 设置加载进度条(开始..)
    return config
  },
  error => {
    return Promise.reject(error)
  }
)
// axios响应拦截器
axios.interceptors.response.use(
  function(response) {
    NProgress.done() // 设置加载进度条(结束..)
    return response
  },
  function(error) {
    return Promise.reject(error)
  }
)

切换路由

language 复制代码
//导入
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

router.beforeEach((to, from, next) => {
  NProgress.start()
  next()
})
router.afterEach(() => {
  NProgress.done()
})

首屏

language 复制代码
<script>
  NProgress.start()
  // 给页面设置请求加载进度条效果
  window.onload = function() {
    NProgress.done()
  }
</script>

nuxt3

language 复制代码
import NProgress from "nprogress";
import "nprogress/nprogress.css";

export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.hook("app:mounted", (e: any) => {
    console.log(11111111);
  });
  nuxtApp.hook("page:start", (e: any) => {
    NProgress.start();
  });
  nuxtApp.hook("page:finish", (e: any) => {
    setTimeout(() => {
      NProgress.done();
    }, 150);
  });
  nuxtApp.hook("app:error", (e: any) => {
    if (process.client) {
      NProgress.done();
    }
  });
});
目录
暂无评论,欢迎留下你的评论

运营需要亿点资金维持,您的支持,是小白龙创作的动力!!!

昵称
留言
赞赏金额