解决vue项目中某一页面不想引用公共组件app.vue的问题

作者:让我看看谁在学习 时间:2023-07-02 16:57:35 

Vue 单页面应用 把公共组件放在 app.vue 但是我希望某个页面没有这些公共组件怎么办(比如登陆页面)每个页面都有 导航栏 但是我希望 登陆页面只有一个背景色和一个登陆框 没有导航栏 那应该怎样设置呢?

vue中文文档:点击进入

在根组件中:在导航栏使用v-show判断当前路由是否是不需要的组件来完成页面:


<template>
 <div id="app">
   <home-header v-show="!(path ==='/') "></home-header>
   <home-aside v-show="!(path ==='/')"></home-aside>
   <router-view/>
 </div>
</template>

<script>
 import HomeHeader from './components/header/Header'
 import HomeAside from './components/aside/Aside'
 export default {
   name: 'App',
   data(){
     return{
       path:''
     }
   },
   components: {
     HomeHeader,
     HomeAside,
   },
   // 判断路由
   mounted() {
    this.path = this.$route.path;
    // console.log(this.$route.path)
   },
   watch:{
     $route(to,from){
       this.path = to.path
     }
   }
 }
</script>
<style>
</style>

在mounted(){}中使用this.path=当前页面的路由然后使用watch监测变化

补充知识:在app.vue里面注册的组件,然后想在首页不显示,需要怎样控制呢?vue切换路由的时候,在哪儿监控路由变化呢?

需求是这样的:

除了首页之外,每个页面上都要显示一个【返回的导航栏】。

那么问题来了,怎样控制首页返回导航栏的显示与隐藏呢。

思路:

在【返回的导航栏】组件里面,监听路由的变化,然后在监听里面进行判断即可。

代码:


<template>
<div id="back" v-if="isShowBack">
 <div class="back_box" @click="toBack()">
  <span class="left_arrow">
   <img src="../../../static/images/icon_arrow_bottom_left.png" />
  </span>
 </div>
</div>
</template>

<script>
var that;
export default {
 data() {
  return {
   msg: '',
   isShowBack:false
  }
 },
 methods: {
  toBack() {
   console.log('点击了返回')
   this.$router.go(-1);
  }
 },
 watch:{
  '$route':function(){
   that = this;
   console.log('watch里面',that.$route.name);
   if(that.$route.name == 'HomeNew'){
    that.isShowBack = false;
   }else{
    that.isShowBack = true;
   }
  }
 }
}
</script>

<style scoped="scoped">
.back_box {
 width: 100%;
 height: 30px;
 background: #f1f1f1;
}

.left_arrow {
 width: 22px;
 display: inline-block;
 transform: rotate(90deg);
 margin-top: 4px;
 margin-left: 4px;
}

.left_arrow img {
 width: 100%;
}
</style>

------完。

来源:https://blog.csdn.net/weixin_42545184/article/details/89311666

标签:vue,页面,公共,组件,app.vue
0
投稿

猜你喜欢

  • php checkbox复选框值的获取与checkbox默认值输出方法

    2023-11-14 13:41:12
  • python flask框架实现重定向功能示例

    2022-01-16 07:14:51
  • django实现日志按日期分割

    2023-07-20 04:25:21
  • Python 多进程和数据传递的理解

    2021-06-01 02:30:07
  • 用electron 打包发布集成vue2.0项目的操作过程

    2024-05-09 15:22:59
  • javascript框架设计之框架分类及主要功能

    2024-04-18 09:33:40
  • Spring Cloud Feign高级应用实例详解

    2021-04-23 07:12:36
  • 什么是gzip,人肉gzip?

    2008-11-20 13:01:00
  • python自动化unittest yaml使用过程解析

    2023-05-06 11:48:15
  • Python常见工厂函数用法示例

    2023-08-17 00:50:25
  • 從無到有實現一個xml數據庫登錄驗証

    2008-09-05 17:12:00
  • Pycharm取消py脚本中SQL识别的方法

    2023-10-30 16:23:13
  • Pandas读取并修改excel的示例代码

    2022-08-18 23:27:34
  • Django Admin中增加导出CSV功能过程解析

    2021-04-17 06:22:47
  • php替换字符串中间字符为省略号的方法

    2023-09-30 20:16:04
  • SQL Server与Oracle数据库在查询优化上的差异

    2009-02-18 14:28:00
  • Python根据字典值对字典进行排序的三种方法实例

    2022-07-29 16:24:21
  • 在Vue组件上动态添加和删除属性方法

    2024-04-09 10:59:10
  • 线程安全及Python中的GIL原理分析

    2022-09-06 11:16:20
  • OpenCV利用python来实现图像的直方图均衡化

    2023-01-22 15:05:36
  • asp之家 网络编程 m.aspxhome.com