Vuex+路由独享守卫实现根据条件重定向

如何在进入某页面之前通过条件判断是否跳转至其它页面,事先把条件标识存储在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); }); } }

vuexaction中通过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当进入此路由时判断,如为老版本跳到其它页面。

    推荐阅读