前端进度条组件NProgress

nprogress

  1. 安装
jsx 复制代码
npm install --save nprogress
  1. 使用
jsx 复制代码
import NProgress from 'nprogress' // 引入nprogress插件
import 'nprogress/nprogress.css'  // 这个nprogress样式必须引入
jsx 复制代码
// 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)
  }
)

写在axios的请求拦截器和响应拦截器里,每次只要触发axios请求就加载进度条

或者网上很多人写在了router.beforeEach和router.afterEach,这种写法只能切换路由时才有效果。

个人感觉写在axios的请求拦截器和响应拦截器里比较好,因为切换路由一般都会触发页面的created()事件发起axios请求

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

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

最好在index.html也写上,单页面首次打开速度慢,这样写打开登陆页时也才会显示!

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

可以更改设置样式

配置NProgress:

  1. showSpinner:进度环显示隐藏
css 复制代码
NProgress.configure({showSpinner: false});
  1. ease:调整动画设置,ease可传递CSS3缓冲动画字符串(如ease、linear、ease-in、ease-out、ease-in-out、cubic-bezier)。speed为动画速度(单位ms)。
css 复制代码
NProgress.configure({ease:'ease',speed:500});
  1. minimum:设置最低百分比
css 复制代码
NProgress.configure({minimum:0.3});
  1. 百分比:通过设置progress的百分比,调用 .set(n)来控制进度,其中n的取值范围为0-1。
css 复制代码
NProgress.set(0.4);
相关推荐
架构技术专栏4 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
别动我齐刘海5 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
志尊宝6 小时前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
刘发财6 小时前
前端如何生成10000页PDF文件?
前端·javascript·开源
A接拉起0077 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端
用户11481867894847 小时前
面试官:大屏项目里十几个模块同时渲染上万条数据,怎么做到不卡?
前端·性能优化
前端市界7 小时前
Pro React Admin: 统一工程底座,承载多种应用...
前端·github
葡萄城技术团队7 小时前
dsh-spreadjs-editor 当前支持什么:安装前需要了解的几件事
前端
三*一8 小时前
优化修整算法
前端·javascript·算法
weifont9 小时前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化