我想创建一个有条件地显示组件的路由。
例如,用户点击/ home路由。如果用户是指导者,则显示MentorHomeComponent;否则显示MenteeHomeComponent。
最好的方法是什么?
答案 0 :(得分:0)
<component :is="componentName"></component>
。使用computed
属性,仅根据用户权限显示适当的组件。
<template lang="pug">
component(:is="appropriateComponent")
</template>
<script>
import { mapGetters } from "vuex";
export default {
components: {
FirstComponent: () => import("@/views/FirstComponent"),
SecondComponent: () => import("@/views/SecondComponent")
},
computed: {
...mapGetters("user", ["isAdmin"]),
appropriateComponent() {
return this.isAdmin ? "FirstComponent" : "SecondComponent";
}
}
};
</script>
答案 1 :(得分:0)
这是一种简短的方法:
Home.vue
export default {
data() {
return {
mentor: false
}
},
mounted() {
this.mentor ? this.$router.push({name : 'MentorHomeComponent'})
: this.$router.push({name : 'MenteeHomeComponent'})
}
}
<template>
<div id="app">
<router-view></router-view>
</div>
</template>