我正在尝试在同一路径上的vue路由器中创建路由,但每个用户类型具有不同的组件。
基本上我有两种用户类型:-公民-游客
当它们到达根路径("/")时,我希望它们有不同的组件。
有没有一种方法可以在我的路由器中使用某种if语句?我不希望它们有一个类似于"/citizen/“或"/tourist”的路径。但是组件(及其子组件)应该是完全不同的。
视图的文件夹结构如下所示:
- views
-- user
--- login
--- register
-- citizen
--- home
--- benefits
--- locations
-- tourist
--- home
--- accommodations
--- sightseeing你有什么办法在Vue路由器中最好地做到这一点吗?
发布于 2019-08-03 04:20:46
<component :is="componentName"></component>。使用计算属性,仅根据用户类型显示适当的组件。让我们以home.vue为例,您可以根据用户类型加载不同的组件。
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>https://stackoverflow.com/questions/57316644
复制相似问题