不要在vue的注册/登录页面上显示菜单

时间:2017-11-30 09:06:31

标签: vue.js vue-router

我有一个侧边菜单,我不想在登录/注册页面中显示,我需要在几乎所有其他页面中显示它。我该怎么做呢?

<div id="app ui container">
    <Menu/>
    <router-view/>
</div>

4 个答案:

答案 0 :(得分:2)

创建一个像

这样的计算属性
showMenu() {
    return this.$route.name !== 'login' && this.$route.name !== 'register';
}

并将v-if="showMenu"添加到您的<Menu/>

答案 1 :(得分:2)

有更好的方法来处理这个问题,但由于你没有共享你的代码,你可以使用这样的东西:

computed: {
 hide () {
   return this.$route.path === '/login' || this.$route.path === '/register'; 
 }
}

或者你仍然可以在元素本身上使用hide / show:

 <Menu v-if='this.$route.path !== "login" || this.$route.path !== "/register"'/>

但是,这甚至更少推荐

答案 2 :(得分:0)

  1. 您应该为登录创建单独的页面,为所有其他页面创建单独的文件夹。

  2. 在“登录”页面提供用户身份验证的逻辑,并且每次成功登录都会创建用户会话以导航到用户帐户主页。

答案 3 :(得分:0)

// 路由器/index.js

{
    path: '/login',
    name: 'login',
    component: () => import(/* webpackChunkName: "login" */ '../views/Login.vue'),
    meta: {
      hideNavbar: true,
     }
  },

在 App.vue 中你的

<Nav v-if="!$route.meta.hideNavbar" />