vue項目中使用nprogress加載進度條


nprogress 是頁面跳轉時候出現在瀏覽器頂部的進度條,后台系統和移動端都很常用。

 

安裝

npm install --save nprogress

 

使用

import NProgress from 'nprogress' // Progress 進度條
import 'nprogress/nprogress.css' // Progress 進度條樣式
NProgress.start(); //開始
NProgress.done(); // 結束

 

配合攔截登錄,token驗證

// 攔截登錄,token驗證
router.beforeEach((to, from, next) => {
    NProgress.start()
    if (store.getters.token && Cookie.get('User-Token')) {
        // 存在token
        if (to.path === '/login') {
            NProgress.done()
            next({ path: '/' })
        } else {
            if (store.getters.routers.length === 0) {
                console.log("進入驗證權限")
                // 驗證權限
                getProhibitedList({
                    site_id: store.getters.siteid
                }).then(res => {
                    // console.log(res);
                    const prohibitedList = res.list;
                    store.dispatch('GenerateRoutes', prohibitedList).then(() => {
                        router.addRoutes(store.getters.routers)
                        next({ ...to, replace: true })
                    })
                }).catch(err => {
                    console.log(err)
                    store.dispatch('removeLoginInfo').then(() => {
                        router.app.$router.push({ path: '/login' })
                    })
                })
            } else {
                next()
            }
        }
    } else {
        // 不存在token,去登錄
        if (writeList.indexOf(to.path) >= 0) {
            next()
        } else {
            next({ path: '/login' })
            NProgress.done()
        }
    }
})
router.afterEach(() => {
    NProgress.done()
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM