Vue-Router中的动态构件选择

pw9qyyiw  于 2023-03-03  发布在  Vue.js
关注(0)|答案(1)|浏览(137)

我有一个基本组件,它由一些其他组件扩展,如下所示:

// UserForm
<template>
    <div class="user-form"></div>
</template>

// AdministratorForm
<template>
    <UserForm v-model="administrator">
        // additional fields
    </UserForm>
</template>

现在,我想设置一个动态布线,其中零部件由一个参数选择:

{
   path: '/users/:userTyp/:programId',
   name: 'user-create',
   component: () => import('@/modules/users/forms/'+ userTyp+ 'FormPage.vue'),
   props: (route: any) => ({
       programId: route.params.programId
   })
}

有没有什么方法可以实现动态路由,以及何时和如何实现?
我使用以下版本:

  • "版本":"^2.6.11",
  • "vue路由器":"^3.2.0版本"
cbeh67ev

cbeh67ev1#

您可以动态导入Vue文件中的组件,而不是尝试导入路由器定义中的组件。一种方法是使用:is属性,但它仍然包含不必要的组件导入。更好的方法是使用calculated属性来导入use dynamic imports from Webpack
你能做的就是,给你的路线加上一个组成部分-

{
   path: '/users/:userTyp/:programId',
   name: 'user-create',
   component: () => import('@/modules/SomeComponent.vue'),
}

SomeComponent.vue中,您可以根据路由参数动态导入组件-
x一个一个一个一个x一个一个二个x
希望有帮助。

相关问题