Vue导航栏在特定的页面不显示~

Posted jialun-online

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue导航栏在特定的页面不显示~相关的知识,希望对你有一定的参考价值。

最近写vue项目遇到一些问题,我把导航栏组件放在了app.vue中,让他在每个页面都能显示了,但遇到了一个问题,在登录以及注册页面导航栏是不合理不允许存在的

解决方法:

公共模块的内容可以放在App.vue中
但是通常登录页面是不需要导航的,那么就需要规避登录页

这时,就可以采用keep-alive结合$route.meta来实现这个功能。
keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。$route.meta则可以选择让需要的页面才展示。修改App.vue,如下:

<template>
  <div id="app">
        <div v-if="$route.meta.keepAlive">
      <Nav/>
      <router-view/>
        </div>
        <router-view v-if="!$route.meta.keepAlive"></router-view>
  </div>
</template>
 
<script>
import Nav ‘./components/Nav‘//导入组件
export default 
  name: ‘App‘,
  components:Nav,//注册组件

</script>

 然后配置路由里面的参数

export default new Router(
  routes: [
     
      path: ‘/‘,
      name: ‘home‘,
      component: Home,
      meta:
        keepAlive:true//导航栏在该页面显示
      
    ,
    
      path: ‘/login‘,
      name: ‘login‘,
      component: Login,
      meta:
        keepAlive:false//导航栏在该页面不予显示
      
    ,
    ]
]

谢谢~

以上是关于Vue导航栏在特定的页面不显示~的主要内容,如果未能解决你的问题,请参考以下文章

底部应用栏在使用片段导航时向上/向下滑动(导航架构组件)

bootstrap 4导航栏在rails 5应用程序中不起作用

移动开发中导航栏和搜索栏在设计中应该注意哪些问题?

Android 底部导航栏在 webview 中登录后显示

如何让导航栏在一行上全屏显示以及设置百分比让其居中显示

在 iOS 7 中,导航栏在运行时不可见