首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有不同组件的同一路径上的Vue路由器路由

具有不同组件的同一路径上的Vue路由器路由
EN

Stack Overflow用户
提问于 2019-08-02 04:35:51
回答 1查看 2K关注 0票数 3

我正在尝试在同一路径上的vue路由器中创建路由,但每个用户类型具有不同的组件。

基本上我有两种用户类型:-公民-游客

当它们到达根路径("/")时,我希望它们有不同的组件。

有没有一种方法可以在我的路由器中使用某种if语句?我不希望它们有一个类似于"/citizen/“或"/tourist”的路径。但是组件(及其子组件)应该是完全不同的。

视图的文件夹结构如下所示:

代码语言:javascript
复制
- views
 -- user
  --- login
  --- register
 -- citizen
  --- home
  --- benefits
  --- locations
 -- tourist
  --- home
  --- accommodations
  --- sightseeing

你有什么办法在Vue路由器中最好地做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2019-08-03 04:20:46

<component :is="componentName"></component>。使用计算属性,仅根据用户类型显示适当的组件。让我们以home.vue为例,您可以根据用户类型加载不同的组件。

代码语言:javascript
复制
home.vue

<template>
  <component :is="appropriateComponent"></component>
</template>

<script>
import { mapGetters } from "vuex";

export default {
  components: {
    FirstComponent: () => import("/path/to/component/FirstComponent"),
    SecondComponent: () => import("/path/to/component/SecondComponent")
  },
  computed: {
    // I asume that you store your user in Vuex, so you can get user type through getter
    // But you can get user type from anywhere
    ...mapGetters("user", ["userType"]),
    appropriateComponent() {
      return this.userType === "citizen" ? "FirstComponent" : "SecondComponent";
    }
  }
};
</script>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57316644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档