Vue 页面加载进度条nprogress的使用

734 阅读2分钟

前言:客户在访问网页的时候想要看到网页加载的进度,所以使用 nprogress 来实现当页面跳转是出现在浏览器顶部的进度条,它是轻量级的进度条组件,使用简便,可以很方便集成到应用中来。

效果:

20201022151816265.gif

一、参考资料

官网:ricostacruz.com/nprogress/

github:github.com/rstacruz/np…

二 、安装 nprogress

// 使用npm 或者yarn 安装

npm install --save nprogress
yarn add nprogress

三、使用(2种方式引入)

//使用script 和link 引入对应文件

<script src='nprogress.js'></script>
<link rel='stylesheet' href='nprogress.css'/>

// 全局引入 在main.js中引入nprogress插件和样式,

import NProgress from 'nprogress' 
import 'nprogress/nprogress.css'

四、在路由中添加 nprogress

NProgress.configure({ showSpinner: false })

//在路由跳转前用NProgress.start()标记下进度条开始

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

//在路由跳转后用NProgress.done()标记下结束

router.afterEach(() => {
     NProgress.done()
})

五、进度条样式修改

// 在app.vue中

#nprogress .bar {
    height: 10rpx !important;        //高度
    background: #000000 !important;  //颜色
}

六、其他参数

可以通过调用 .set(n)来设置进度,n是0-1的数字。
NProgress.set(0.0); // Sorta same as .start()
NProgress.set(0.4);
NProgress.set(1.0); // Sorta same as .done()

可以使用inc()随机增长进度条,注意,这个方法永远不会让进度条达到100%。
NProgress.inc();

NProgress.configure({ showSpinner: false }) //禁用进度环
NProgress.configure({ trickle : false }) //关闭进度条步进
NProgress.configure({ trickleRate : 10}) //每次步进增长多少
NProgress.configure({ trickleSpeed : 200}) //每次步进间隔,单位毫秒ms
NProgress.configure({ easing: 'linear'}) //动画方向
NProgress.configure({ speed : 10}) //动画速度,单位毫秒ms
NProgress.configure({ minimum : 0.08}) //最小百分比
显示进度条(shows the progress bar):

    NProgress.start()

设置进度条加载的百分比(sets a percentage)

     NProgress.set(0.4)

进度条增加一点点(increments by a little)

     NProgress.inc()

进度条加载完成(completes the progress)

      NProgress.done()

完整的导航解析流程:

  1. 导航被触发。
  2. 在失活的组件里调用 beforeRouteLeave 守卫。
  3. 调用全局的beforeEach 守卫。
  4. 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。
  5. 在路由配置里调用 beforeEnter
  6. 解析异步路由组件。
  7. 在被激活的组件里调用 beforeRouteEnter
  8. 调用全局的 beforeResolve守卫 (2.5+)。
  9. 导航被确认。
  10. 调用全局的 afterEach钩子。
  11. 触发 DOM 更新。
  12. 用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。