call me

vue项目登录和未登录状态使用相同路径路由不同页面

需求:

1、需要做游客模式(非登录模式)和登录模式的页面,两种模式页面样式相同,接口不同

2、两种模式的路由路径相同

 

实现方法:

1、由于两种模式接口不同,所以准备分成两个模块,不同的vue文件编写

 

2、准备两套路由,对应不同模块的vue文件

 

3、在router的index.js文件中,通过是否又token判断用户是否登录,若登录,使用非游客模式路由,否则使用游客模式路由

Vue.use(VueRouter);
const createRouter = (v) =>
  new VueRouter({
    // mode: 'history',
    base:
      process.env.NODE_ENV === "production"
        ? "/" + process.env.VUE_APP_PROJECTNAME
        : "",
    routes: [
      {
        path: "*",
        name: "not_found",
        component: () => import("@/views/pc/components/notFound.vue"),
        meta: {
          unrequireLogin: true,
        },
      }, // 404
      {
        path: "/",
        name: "index",
        component: () => import("@/views/pc/components/default.vue"),
        meta: {
          unrequireLogin: true,
        },
        redirect: {
          name: "home",
        },
        children: v ? [
          ...routerVisitorCenter,
          routeAppCenter
        ] : [
          ...routeResCenter,
          routeAppCenter
        ],
      },
    ],
  });

let uToken = JSON.parse(localStorage.getItem("token"));
const router = uToken ? createRouter() : createRouter("tourist");

 

posted on 2021-08-26 17:39  黑松沙土  阅读(808)  评论(0)    收藏  举报

导航