进入详情页,隐藏底部导航菜单

在这里插入图片描述
有次在写app项目时,后来客户加了个要求就是点击进入详情页的时候底部的导航栏隐藏掉,不在显示,然后就看下边操作吧。
我们首先在index.js路由文件中配置我们的页面路由

{
	path: '/detail/:id',
	name: 'Detail',
	component: ()=> import ('../views/Detail.vue'),
	meta: {
		hideNav: true, // 是否隐藏底部导航
	}
}

然后我们在App.vue文件中 ,在引入 导航 Nav 组件的地方加上 指令 v-show = ! hideNav
同时设置默认为false值
并且监听这个路由
在这里插入图片描述

<Nav v-show=!hideNav>	</Nav> // 默认展示
<script>
	data() {
	    return {
	    	hideNav: false
	    };
	  },
	watch: { // 监听路由 $route
		$route(){
			if(this.$route.meta.hideNav) { // 如果路由中的meta标记有存在hideNav
				this.hideNav = true // 那么这个标记展示,因为取反了就不显示了
			}else{
			this.hideNav = false
			}
		}
	}
</script>

假设我们从列表页点击进入了详情,那我们直接用 router-link 就行了。
假设我们点击了图片进入了详情(把参数也传过去到详情页接口)

<router-link
  :to="{
    name: 'Detail',
    params: {
      id: product._id,
    },
  }"
>
  <img
    :src="
      product.coverImg
        ? product.coverImg
        : 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3055768216,2672833891&fm=11&gp=0.jpg'
    "
    alt
  />
</router-link>

那我们的详情主要就是展示功能了,有啥展示啥就行,我弄的少,你看你们的项目需要

<template>
  <div class="detai">
    <h1>详情页</h1>
    <p>{{ product.name }}</p>
  </div>
</template>
<script>
import { getOneProduct } from "../services/products"; // 详情接口
export default {
  data() {
    return {
      product: {}, // []
    };
  },
  async created() {
    const res = await getOneProduct(this.$route.params.id); // 接口传递过来的ID 值
   	 this.product = res.data;
  },
};
</script>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值