曲周手机网站建设,网络运营商官网,做网站能做职业吗,零食网站色调搭配怎麽做import setting from /setting
import router from /router
// 任意路由切换实现进度条业务#xff1a; nprogress插件
import nprogress from nprogress // js插件在ts中的报错
// 引入进度条样式
import nprogress/nprogress.css
// 表示在加载进度条时不显示加载小图标
np…import setting from /setting
import router from /router
// 任意路由切换实现进度条业务 nprogress插件
import nprogress from nprogress // js插件在ts中的报错
// 引入进度条样式
import nprogress/nprogress.css
// 表示在加载进度条时不显示加载小图标
nprogress.configure({ showSpinner: false });
// 获取用户相关的小仓库内部 token 数据去判断用户是否登陆成功
import useUserStore from ./store/modules/user
import pinia from ./store
const userStore useUserStore(pinia)// 全局守卫项目中任意路由切换都会触发的钩子
// 全局前置守卫
router.beforeEach(async (to: any, from: any, next) {// 页面标题document.title ${setting.title}-${to.meta.title}// 访问某个路由之前的守卫// next 路由的放行函数nprogress.start() // 开启进度条// 获取token判断用户是否登录const token userStore.token// 获取用户名const username userStore.username// 路由鉴权 项目中的路由有何种条件下可以被访问// 用户未登录可以访问login其余六个路由不能访问// 登录成功不可以访问login其余的都可以访问if (token) {if (to.path /login) {next({ path: / }) // 跳转到首页} else {// 有用户信息if (username) {// 放行next()} else {// 如果没有用户信息在守卫这里发送请求获取用户信息再放行try {await userStore.userInfo()// 可能出现的问题刷新的时候是异步路由有可能获取到用户信息异步路由还没有加载完毕出现空白的效果// next({...to})next()} catch (error) {//token过期或者用户手动修改本地存储-都获取不到用户信息// await 确保用户退出登录成功后进行路由跳转await userStore.userLogout()next({ path: /login, query: { redirect: to.path } })}}}} else {// 用户未登录if (to.path /login) {next()} else {next({ path: /login, query: { redirect: to.path } })}}
})
// 全局后置守卫
router.afterEach((to: any, from: any) {nprogress.done()
})nprogress 使用