如何在进入某页面之前通过条件判断是否跳转至其它页面,事先把条件标识存储在vuex
中,后在router
中通过路由守卫控制页面跳转,下面来看一下具体实现:
vuex(省略部分代码):
state:{platformVer:"" //平台版本},mutations: {
setPlatformVer(state, platformVer) {
state.platformVer = platformVer;
//更新state值
},
}
actions: {
setPlatformVer(state) {
axios.get({
params: {
code: "AuthorityPlatformVersion", //获取权限平台标识版本
data: {}
} //参数
})
.then(res => {
state.commit("setPlatformVer", res);
});
}
}
vuex
在action
中通过setPlatformVer
调用接口拿到数据后commit setPlatformVer数据到vuex中
。在页面登录后或初始加载页面时触发
Vuex
Action的setPlatformVer
: this.$store.dispatch("setPlatformVer");
router路由表:
{
path: "MenuManagementOld",
meta: {
title: "菜单管理old"
},
component: resolve =>
require(["@/views/system/MenuManagementOld"], resolve)
},
{
path: "MenuManagement",
meta: {
title: "菜单管理"
},
component: resolve =>
require(["@/views/system/MenuManagement"], resolve),
beforeEnter: (to, from, next) => {
if (store.state.platformVer == "2") { //2是老版本 跳转到老平台页面
next("/system/MenuManagementOld");
}
next();
//否则继续跳转默认页面MenuManagement
}
},
【Vuex+路由独享守卫实现根据条件重定向】
beforeEnter
当进入此路由时判断,如为老版本跳到其它页面。