vue.js 为大型应用程序组织多条路径

2wnc66cl  于 2023-02-24  发布在  Vue.js
关注(0)|答案(3)|浏览(125)

我想开始在一个大型应用程序上使用Vue.js。该应用程序将有50多个模块,每个模块都有多个组件。
我的计划是在components文件夹下创建子文件夹作为模块,每个文件夹包含其相关的组件文件。
我不希望在router/index.js文件中定义数百条路由,因为这将是难以管理的。
最好在每个模块文件夹中放置一个routes.js文件。
这是可能的,如何或有更好的方法。

byqmnocz

byqmnocz1#

您当然可以这样做,但最终您会希望将它们全部导入到一个routes.js文件中。
本文通过一种解决方案来解决您的问题:https://medium.com/@disjfa/lets-route-a-vue-app-aa9c3f3dbdf8
我考虑的另一种实现方法是从每个模块导出一个路由常量,将它们导入到顶层routes.js中,并在App.vue中使用该文件。
祝你好运!

aemubtdh

aemubtdh2#

您可以将每组布线放在其自己的文件中,然后导入这些文件并使用展开操作符合并布线。
下面是一个例子:

    • 路由器/索引. js**
import moduleRoutes1 from "./path/to/moduleRoutes1"
import moduleRoutes2 from "./path/to/moduleRoutes2"

const router = new Router({
    mode: 'history',
    routes: [
      ...moduleRoutes1,
      ...moduleRoutes2
      //etc. 

      //Note '...' here is a "spread operator" and not ellipsis
    ]
    • 路由器/模块路由1**
let VuePage1 = () => import(/* webpackChunkName: MyChunk */ '@/path/to/VuePage1')
let VuePage2 = () => import(/* webpackChunkName: MyChunk */ '@/path/to/VuePage2')

import moduleRoutes1_1 from "./path/to/moduleRoutes1_1"

export default [
    {
        path: '/some/path/1',
        name: 'pathName1',
        component: VuePage1,
    },
    {
        path: '/some/path/2',
        name: 'pathName2',
        component: VuePage2,
    },
    ...moduleRoutes1_1 //dividing modules further if needed
]
    • 路由器/模块路由2**
... //now it's ellipsis
You've got the idea
quhf5bfb

quhf5bfb3#

我不知道这是否是使用JS本身的最佳方法,我创建了如下文件

import Profile from '../views/user/Profile'
import Login from '../views/user/Login'

export default [
 {
   path: '/',
   name: 'Login',
   component: Login,
   meta: {
      allowAnonymous: true
   }
 },
{
   path: '/profile',
   name: 'Profile',
   component: Profile,
   beforeEnter: (to, from, next) => {
     if (!store.state.userIsLogged) next({ path: '/', replace: true })
     else next()
   }
 }
]

并在index.js文件中导入创建和使用spread运算符的文件

import UserRouter from './user'

const routes = [
   ...UserRouter,
]

任何观察都能说明

相关问题