1,安装
npm install --save nprogress
2. 导入
import { configure, start, done } from 'nprogress'
import 'nprogress/nprogress.css'
3. 配置
configure({ showSpinner: false })
4. 使用
start()
done()
下面是我在项目中的使用
import { configure, start, done } from 'nprogress'
import 'nprogress/nprogress.css'
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 })
Vue.use(Router)
export const router = new Router({
mode: 'history',
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