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

beforeEnter当进入此路由时判断,如为老版本跳到其它页面。


洛阳醉长安行
57 声望4 粉丝

charging...