vue2实现路由跳转后隐藏底部固定导航栏Tabber的一种方式

news/2024/11/30 9:54:33/

在使用vue路由的时候,跳转到某些页面上是不需要展示底部固定的导航栏的,所以在某些特定的页面跳转时候,就需要隐藏底部的导航栏

这里用了一种方式去解决这个问题


1、前提

这里我把底部导航栏做了一个组件的封装,然后在App.vue里面直接全局调用了

  <!-- 底部导航栏组件 --><div id="BottomNavContainer"><van-tabbar v-model="active"><van-tabbar-item icon="wap-home-o" to="/">首页</van-tabbar-item><van-tabbar-item icon="medal-o" to="/Recommend">推荐</van-tabbar-item><van-tabbar-item icon="flower-o">服务</van-tabbar-item><van-tabbar-item icon="user-o">我的</van-tabbar-item></van-tabbar></div>

调用组件

<template><div id="app"><router-view></router-view><BottomNav v-if="this.$route.meta.BottomNavShow"></BottomNav></div>
</template>

1、在router/index.js

打开路由的index.js配置文件,然后找到我们添加好的路由

const routes = [{path: '/test',component: Test}, {path: '/',component: Home}, {path: '/Recommend',component: Recommend}
]

我们可以给路由添加上一个 meta属性

这里我有三个路由,我这里在 /test 这个路由下隐藏底部导航栏

  {path: '/test',component: Test,meta: {BottomNavShow: false}}, {path: '/',component: Home}, {path: '/Recommend',component: Recommend}

给 /test 添加一个对象属性,隐藏掉测试组件里面的底部导航栏

2、在App.vue组件调用上配合 v-if

<template><div id="app"><router-view></router-view><BottomNav v-if="this.$route.meta.BottomNavShow"></BottomNav></div>
</template>

如果flag为true,则显示被控制的元素,如果为false,则隐藏被控制的元素

3、路由跳转

 这个时候跳转到测试组件的时候,底部导航这个组件确实消失不见了

4、其他页面也被隐藏了

但是回到首页和其他组件,我们会发现:首页的底部导航栏页不见了

 这多少有点尴尬,是因为

v-if这个条件渲染指令,布尔值是:flase的时候元素是隐藏的,而前面给底部导航的组件做了个v-if的判断,那么,我们就可以知道,这个对象属性的值默认是 【false】

那我们给其他两个路由也添加上这个属性,我们把值改为 true

  {path: '/test',component: Test,meta: {BottomNavShow: false}}, {path: '/',component: Home,meta: {BottomNavShow: true}}, {path: '/Recommend',component: Recommend,meta: {BottomNavShow: true}}

 但是每添加一个路由就要添加一次这个属性,多少有点麻烦

那么,默认值为flase-隐藏,那隐藏的不添加这个属性,不隐藏的添加这个属性就好了是吧,(也就稍微比刚才那个麻烦少一点是吧思密达~)

  {path: '/test',component: Test}, {path: '/',component: Home,meta: {BottomNavShow: true}}, {path: '/Recommend',component: Recommend,meta: {BottomNavShow: true}}


http://www.ppmy.cn/news/71291.html

相关文章

理解PMP的顺序

PMP&#xff0c;大量考的是“下一步”、“本应该”的顺序逻辑。在学习的时候&#xff0c;我们需要把整本书十个知识领域&#xff0c;穿起来形成一个线性的结构。 在整理的过程中&#xff0c;很多人都会认为&#xff0c;线性结构&#xff0c;应该是这样的&#xff1a; 每个过程…

基于C语言设计一个叫号系统

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 这道题的重点在于怎么处理患者的治疗过程。大二上学期的理论课上&#xff0c;我们在第一节的研讨课上对于这道题的实现进行了探讨。本题的患者排队与数据结构中的队列结构完全符合&#xff0c;当患者挂号后&#xff0c;检查该…

GPT专业应用:英语作文修改与解释

正文共 868 字&#xff0c;阅读大约需要 3 分钟 英语学习者/老师必备技巧&#xff0c;您将在3分钟后获得以下超能力&#xff1a; 快速修改英语作文 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda …

java基础入门-09-【API(常见API,拷贝,对象克隆)】

Java基础入门-09-【API(常见API,对象克隆)】 18、API(常见API,对象克隆)游戏打包exe核心步骤1 Math类1.1 概述1.2 常见方法1.3 算法小题(质数)1.4 算法小题(自幂数)1.5 课后练习2 System类2.1 概述2.2 常见方法2.2.1 currentTimeMillis方法2.2.2 exit方法2.2.3 arraycopy…

3-数据结构-线性表之顺序表-在某个位置插入或删除

问题&#xff1a; 在顺序表某个位置插入或者删除。 思路&#xff1a; 顺序表嘛&#xff0c;起始主体是数组&#xff0c;数组是挨着存放的&#xff0c;因此&#xff0c;插入和删除&#xff0c;就是对数组的操作&#xff0c;只不过多了些结构体中数据个数的变动&#x…

QT多线程基础

文章目录 前言一、多线程概念介绍二、创建一个线程三、start和terminate函数四、如何不使用terminate函数终止线程总结 前言 本篇文章来讲解一下QT中的多线程使用方法。 其实线程这个概念对于我们来说并不陌生&#xff0c;main函数在多线程中一般就被称为主线程。 在QT中&am…

STM32-ADC多通道输入实验

之前已经介绍了几个ADC的笔记和实验了&#xff0c;链接如下&#xff1a; 关于ADC的笔记1_Mr_rustylake的博客-CSDN博客 STM32-ADC单通道采集实验_Mr_rustylake的博客-CSDN博客 STM32-单通道ADC采集&#xff08;DMA读取&#xff09;实验_Mr_rustylake的博客-CSDN博客 接下来…

MD5 算法

一、MD5算法概述 MD5(Message Digest Algorithm 5)是消息摘要算法的一种&#xff0c;它可以将任意长度的“消息”&#xff08;也可以是文件&#xff09;计算出一个固定长度的“摘要”&#xff0c;通常是128位。MD5广泛应用于数字签名、数据完整性校验、密码存储等领域。在Java…