vue如何实现路由跳转后隐藏导航栏
时间: 2024-01-30 21:03:18 浏览: 68
Vue可以使用路由的钩子函数beforeEach,在路由跳转前判断是否需要隐藏导航栏。具体代码如下:
```
// 路由配置
const routes = [
{
path: '/',
name: 'Home',
component: Home,
},
{
path: '/about',
name: 'About',
component: About,
},
{
path: '/article',
name: 'Article',
component: Article,
meta: {
hideNav: true, // 隐藏导航栏
},
},
];
// 使用beforeEach钩子函数
router.beforeEach((to, from, next) => {
const hideNav = to.meta.hideNav;
if (hideNav) {
// 隐藏导航栏
store.commit('hideNav');
} else {
// 显示导航栏
store.commit('showNav');
}
next();
});
// store的mutations
const mutations = {
hideNav(state) {
state.showNav = false;
},
showNav(state) {
state.showNav = true;
},
};
// 导航栏组件的渲染
<template>
<div v-if="showNav">导航栏</div>
</template>
<script>
export default {
computed: {
showNav() {
return this.$store.state.showNav;
},
},
};
</script>
```
在路由配置中,可以添加meta字段,用来存储额外的信息。通过beforeEach钩子函数,在路由跳转前判断是否需要隐藏导航栏,并根据情况修改store中的状态。在导航栏组件中,根据store中的状态来决定是否渲染导航栏。
阅读全文