在应用ant design vue pro时,本来登录的是普通用户的账号,而后退出登录,切换到admin账号时,发现左侧菜单还是原来普通用户的菜单,须要刷新一下能力失常显示。
第一次批改的想法是登录胜利后进行页面刷新,但闪一下对用户体验不太好,这个时候就能够采纳重置路由的办法。
在router/index.js
中
const createRouter = () => new Router({ mode: 'hash', routes: constantRouterMap})const router = createRouter()// 导出一个重置路由的办法,退出时革除动静加载的路由export function resetRoute () { const newRouter = createRouter() router.matcher = newRouter.matcher}export default router
在退出登录的中央store/modules/user.js
import { resetRoute } from '@/router'// 登出Logout ({ commit, state }) { return new Promise((resolve) => { logout(state.token).then(() => { resolve() }).catch(() => { resolve() }).finally(() => { // 在这里执行重置路由 resetRoute() commit('SET_TOKEN', '') commit('SET_ROLES', []) storage.remove(ACCESS_TOKEN) Cookies.remove(ACCESS_TOKEN, { path: '/', domain: process.env.VUE_APP_DOMAIN }) }) })}
而后切换不同用户左侧菜单就没有问题啦!