出现刷新白屏的问题原因很好理解,就是由于加载了动态路由,刷新后动态路由消失,所以就出现了白屏问题,解决方式是判断在刷新的时候重新添加动态路由就行了。(参考大神的经验,最终解决了我的问题,感谢...)
//permission.js
if (!store.state.menuManage.ifChange) {
const hebing = true
await store.dispatch('getTbMenuQueryData', hebing)
next({ ...to, replace: true })
} else {
next()
}
//menuManage.js
getTbMenuQueryData({ commit, state }, hebing) {
return new Promise((resolve, reject) => {
let webMenu = JSON.parse(getSession('webMenu'))
if (webMenu) {
try {
if (!state.asyncRoute.length && hebing) {
commit('SETROUTES', filterAsyncRouter(webMenu))
}
} catch (error) {
console.log(error)
}
resolve(webMenu)
} else {
...
}
})
},
SETROUTES: (state, d) => {
...
router.matcher = new VueRouter({
routes: resultAllroute,
}).matcher
state.ifChange = true
},