nprogress的使用

1,安装

npm install --save nprogress

2. 导入

import { configure, start, done } from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style

3. 配置

configure({ showSpinner: false }) // NProgress Configuration

4. 使用

// 开启加载提示进度条
  start()
 // 路由完成之后结束加载提示进度条
  done()

下面是我在项目中的使用

import { configure, start, done } from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
import Vue from 'vue'
import Router from 'vue-router'
import { getToken } from '@/utils/token'
import getPageTitle from '@/utils/pageTitle'
import constantRoutes from './router'

configure({ showSpinner: false }) // NProgress Configuration
Vue.use(Router)

export const router = new Router({
  mode: 'history', // hash
  routes: constantRoutes
})

// 白名单页面,不需要登录
const whiteList = ['/login']
router.beforeEach((to, from, next) => {
  console.log('to', to)
  console.log('from', from)
  // 开启加载提示进度条
  start()
  // 设置浏览器的标题
  document.title = getPageTitle(to.meta.title)
  const token = getToken()
  console.log('token--->', token)
  if (token) {
    if (to.path === '/401') {
      next()
    } else {
      const routes = router.getRoutes().filter((r) => r.path === to.path)
      // 如果目标路由存在
      if (routes.length) {
        next()
      } else {
        next('/404')
      }
    }
  } else {
    // 白名单中的路由不用登录
    if (whiteList.includes(to.path)) {
      next()
    } else {
      next('/login')
    }
  }
})

router.afterEach((to, from, next) => {
  // 路由完成之后结束加载提示进度条
  done()
  window.scrollTo(0, 0)
})

export default router

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值