【问题标题】:Vue js separate routes in different filesVue js在不同文件中分离路由
【发布时间】:2017-07-28 09:44:13
【问题描述】:

我正在创建一个单页应用程序,我想将路由文件分隔在不同的文件中

Thta 在我的主路由文件 index.js 中

export default new Router({
 routes: [
   { path: '/', component: Hello },
   {path :'/users', component: UsersContainerComponent,
       children:[
           {path :'', component: UsersComponent},
           {path :'/create', component: UsersCreateComponent},
           {path :'/update', component: UsersUpdateComponent},

         ]
      },

] })

现在我不仅包含了其他功能,因此代码变得庞大,我如何将用户路由功能外包到另一个文件中,并且只包含对主路由文件的引用

那么我怎样才能实现这样的目标

export default new Router({
  routes:[
    {path:'users', .....}// here load users routing in another file

    ]
  })

因为这将使代码更具可读性和可管理性。

【问题讨论】:

    标签: javascript vuejs2 vue-router


    【解决方案1】:

    我喜欢 disjfa 解决方案: Let’s route a vue app 组件路由

    import People from '../views/People';
    import Welcome from './../views/Welcome';
    import Details from './../views/Details';
    import Create from './../views/Create';
    
    export default [
      {
        path: '/people',
        name: 'people',
        component: People,
        title: 'People',
        redirect: { name: 'people-welcome' },
        children: [
          {
            path: 'welcome',
            name: 'people-welcome',
            component: Welcome,
          },
          {
            path: 'create',
            name: 'people-create',
            component: Create,
          },
          {
            path: ':id',
            name: 'people-details',
            component: Details,
          },
        ],
      },
    ];
    

    主要路线

    import Vue from 'vue';
    import Router from 'vue-router';
    import Dashboard from '@/views/Dashboard';
    import peopleRoutes from '@/modules/people/router';
    
    Vue.use(Router);
    
    const baseRoutes = [
       ...
    ];
    
    const routes = baseRoutes.concat(peopleRoutes);
    export default new Router({
      routes,
    });
    

    【讨论】:

      【解决方案2】:

      您可以在主路由文件中添加子路由。

      {
        path: '/events',
        component: eventspage,
        children: eventroutes,
      },
      

      在子路由组件中,您可以执行以下操作:

      const eventroutes = [
        {
          path: '',
          name: 'eventlist',
          component: eventlist,
        },
        {
          path: 'info/:id',
          name: 'eventlist',
          component: eventlist,
        },
      ];
      
      export default eventroutes;
      

      基本上可以直接把children部分里面的路由取出来,做成一个单独的文件。

      【讨论】:

      • 感谢我一直在寻找的东西。
      • 这个的导入是什么样子的?父路由文件要导入eventspage和eventroutes?
      • 您是否必须为子路由使用新组件“eventspage”(如<template lang="html"><router-view></router-view></template>)才能进入嵌套路由器视图?
      猜你喜欢
      • 2021-07-18
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 2019-12-10
      • 2022-12-23
      • 2020-11-24
      • 1970-01-01
      • 2021-07-11
      相关资源
      最近更新 更多