vue公共组件裁减导航
xuexi 2023-09-25 08:48:28 发表在:VUE 查看数:1017

场景:

有一个公共头部和底部,vue搭建的框架,在app.vue里写的公共方法,首页是个登录页面,不需要公共部分,在这基础上进行公共部分的显示隐藏。

即注册页、登录页、404页面都不要导航
首先定义一个可以隐藏的区域
<template>
<div v-show="zs">
  <router-link to="/config">系统设置</router-link>
</div>
 <!-- 路由占位符 -->
 <router-view></router-view>
</template>
完整代码:
<script lang="ts" setup>
import { ref } from 'vue';
import {
  UserOutlined,
  VideoCameraOutlined,
  UploadOutlined,
  MenuUnfoldOutlined,
  MenuFoldOutlined,
} from '@ant-design/icons-vue';
const selectedKeys = ref<string[]>(['1']);
const collapsed = ref<boolean>(false);
</script>
<style>
#components-layout-demo-custom-trigger .trigger {
  font-size: 18px;
  line-height: 64px;
  padding: 0 24px;
  cursor: pointer;
  transition: color 0.3s;
}

#components-layout-demo-custom-trigger .trigger:hover {
  color: #1890ff;
}

.site-layout .site-layout-background {
  background: #fff;
}
#components-layout-demo-custom-trigger .logo {
    height: 32px;
    background: rgb(127, 252, 255);
    margin: 16px;
    font-size: 90px;
    text-align: center;
    font-family: 宋体;
  }
</style>

<!-- 后台结束 -->
<!-- 
<script lang='ts'>
import axios from 'axios';//引入axios进来
axios({
  method: 'post',
  headers: {  //带请求头token验证
          'token': localStorage.getItem('token')
           },
  url: '/url',
  data: {id:1}
   }).then(res=>{
      console.log(res.data);
  },err=>{
  console.log(err);
})
</script> -->

<script lang='ts'>
export default {
  data() {
    return {
      zs:false 
    }
  },
  computed: {
    greeting() {
      return this.message + '!'
    }
  },
  watch:{
    $route(to,from){
      if (to.path=='/login') {
        this.zs=false;
      }else{
        this.zs=true;
      }
    }
  },
  mounted() {
   this.path = this.$route.path;//当前路由
   if(this.$route.path == '/login'){
    this.zs = false;
   }
  }

}
</script>
最近访问时间:2025-05-01 04:33:00
知识库:340条鸣谢:TAY  备案号:蜀ICP备2024090044号