文章目录

  • 安装
  • 基本用法
  • vue实例

安装

将nprogress.js和nprogress.css添加到项目中。

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

NProgress可通过bower和npm获得。

$ npm install --save nprogress

也可通过unpkg CDN:

  • https://unpkg.com/nprogress@0.2.0/nprogress.js
  • https://unpkg.com/nprogress@0.2.0/nprogress.css

基本用法

只需调用start()和done()来控制进度条。

NProgress.start();
NProgress.done();

vue实例

代码中带注释

import Vue from "vue";
import router from "./router";
import store from "./store";
import NProgress from "nprogress"; // 进度条
import "nprogress/nprogress.css"; // 进度条样式
import getPageTitle from "@/utils/get-page-title";
import { getRefreshToken } from "@/utils/token";NProgress.configure({ showSpinner: false }); // NProgress配置const whiteList = ["/login",
]; // 重定向白名单router.beforeEach(async (to, from, next) => {// 开始进度条NProgress.start();// 设置页面标题document.title = getPageTitle(to.meta.title);// 判断用户是否已登录let bearerToken = localStorage.getItem("bearer_token") || "";if (bearerToken) {if (to.path === "/login") {// 如果已登录,则重定向到主页next({ path: "/" });Vue.prototype.$message.success("您已登录");NProgress.done();} else {const hasGetUserInfo = store.getters.name;if (hasGetUserInfo) {next();} else {try {// 获取用户信息,若获取不到,在getInfo方法内提示用户重新登录await store.dispatch("user/getInfo");next();} catch (error) {// 删除令牌并转到登录页面重新登录let refreshToken = localStorage.getItem("refresh_token") || "";// 尝试刷新 token//getRefreshToken 方法刷新tokenif (refreshToken.length !== 0) {let refreshToken = await getRefreshToken();localStorage.setItem("refresh_token", refreshToken);next();} else {Vue.prototype.$message.error(error || "Has Error");//重定向到登录页面next(`/login?redirect=${to.path}`);}NProgress.done();}}}} else {/*没有令牌*/if (whiteList.indexOf(to.path) !== -1) {//在免登录白名单中,直接进入next();} else {//其他没有权限访问的页面重定向到登录页面。next(`/login?redirect=${to.path}`);NProgress.done();}}
});router.afterEach(() => {//完成进度条NProgress.done();
});

加载条nprogress配置相关推荐

  1. Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置

    <Spring Cloud Alibaba基础教程>连载中,关注我一起学期!前情回顾: <使用Nacos实现服务注册与发现> <支持的几种服务消费方式> <使 ...

  2. 配置文件加载位置||外部配置加载顺序||自动配置原理

    配置文件加载位置 SpringBoot会从这四个位置全部加载主配置文件:互补配置: 外部配置加载顺序 自动配置原理 1.自动配置原理: 1).SpringBoot启动的时候加载主配置类,开启了自动配置 ...

  3. 一款基于jquery带百分比的响应式进度加载条

    今天要给大家带来一款基于jquery带百分比的响应式进度加载条.这款加载条非常漂亮,而且带有进度的百度比,且在不同的百分比用的是不同的颜色.而且这款加载条采用了响应式设计,在不同的分辨率的显示器下完美 ...

  4. 制作一个大风车加载条

    一.前言 不想使用普通的那种转圈的加载条,所以找了一个大风车的图片,想要用旋转的大风车来表示加载中. 一般都会想着将大风车图片设置成ImageView组件,然后给这个组件添加一个旋转动画就可以了,但是 ...

  5. html canvas直线进度条,js+HTML5 canvas 实现简单的加载条(进度条)功能示例

    本文实例讲述了js+HTML5 canvas 实现简单的加载条(进度条)功能.分享给大家供大家参考,具体如下: www.jb51.net canvas实现加载条动画 /* * 获取canvas, ca ...

  6. Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条

    可实现多种渐变.直角or弧角.进度条.加载条 (Various gradient, right or arc angle, progress bar and loading bar can be re ...

  7. 纯css炫酷动态加载条

    模仿windows风格的动态加载条,目前颜色更宽度是写死的,没有用clac的原因是因为它会跑得太原获取的100%是窗口宽度而不是父div宽度. <!DOCTYPE html> <ht ...

  8. Node.js项目中动态加载环境变量配置

    NODE_MODULES:项目中动态加载环境变量配置 开始 在平时的 Node.js 项目开发中,我们需要在项目中添加各种各样的配置:服务端口.服务地址.图片上传.数据库.Redis 等等. 通常情况 ...

  9. 实现阮一峰ES6的顶部加载条效果

    效果例子 阮一峰的ES6:http://es6.ruanyifeng.com/?search=s&x=13&y=3 html + css <style type="te ...

最新文章

  1. 2022一建改革加考英语和计算机,2021年一建考试大改革吗 考六门科目吗
  2. python循环输入字典_python - 使用'for'循环迭代字典
  3. 数据库设计笔记——MySQL基础知识(四)
  4. spring 基于java的配置
  5. JavaScript数组常用的方法总结
  6. Git 新建仓库推送远程技巧
  7. 数据绑定(二)把控件作为Binding源
  8. 去哪儿-09-city-list
  9. Apache工作模式详解
  10. OC可变数组的常用操作
  11. learning linux
  12. hdu 3951 博弈
  13. c语言航空订票系统程序设计,C语言航空订票系统
  14. C 里 求 log2 N 的问题
  15. python自然语言_Python自然语言处理 - 随笔分类 - 牛皮糖NewPtone - 博客园
  16. java oracle spool,Oracle 数据导出工具 Spool | 学步园
  17. 11g中hanganalyze的格式
  18. flash打印纸张设置
  19. SVM(支持向量机)
  20. 树莓派最新raspbian系统换国内源

热门文章

  1. iptables 防范dos攻击
  2. word段落设置首行缩进悬挂缩进
  3. iOS添加边缘手势( UIScreenEdgePanGestureRecognizer)实现侧滑效果
  4. 网易 java社招面试_十月底—最新网易Java岗社招面试经历分享
  5. wsy日志---三子棋
  6. 碰到的bug,解决方法
  7. 亚马逊ASIN无效怎么办?Amazon asin无法创建的解决方法
  8. 开源web框架django知识总结(二十二)
  9. C# windows 服务学习探索
  10. 一个震惊了整个德国的动人故事 (转)