首页 > 解决方案 > Vue.js 路由器 - 条件组件渲染

问题描述

 routes: [
{
  path: '/',
  name: 'home',
  get component(){
    if(Vue.loggedIn){
      return Home
    }else{
      return Login
    }
  }  
}

我添加了一个 getter,似乎工作正常,但我在 if 语句中使用的任何变量或函数都是未定义的。即使我尝试使用全局原型。$var 和 mixin 函数仍然没有成功。

我所需要的是,如果用户登录路径“/”呈现仪表板视图,如果没有,则登录被呈现到“/”。

注意:我使用 beforeEnter: 并且效果很好。但我不想重定向。

标签: vue.js

解决方案


使用您的方法,这是我发现的工作:

routes: [
{
  path: '/',
  name: 'home',
  component: function () {
    if(loggedIn){
      return import('../views/Home.vue')
    }else{
      return import('../views/Login.vue')
    }
  }  
}

推荐阅读