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


Posted in Javascript onAugust 14, 2020

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>

------完。

以上这篇解决vue项目中某一页面不想引用公共组件app.vue的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS JavaScript获取Url参数,src属性参数
Mar 09 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
js Date概念详细介绍
Nov 22 Javascript
通过JS来判断页面控件是否获取焦点
Jan 03 Javascript
jQuery模拟点击A标记示例参考
Apr 17 Javascript
node.js中的http.request.end方法使用说明
Dec 10 Javascript
js实现文本框输入文字个数限制代码
Dec 25 Javascript
详解Vue组件实现tips的总结
Nov 01 Javascript
微信小程序实现bindtap等事件传参
Apr 08 Javascript
使用JS实现动态时钟
Mar 12 Javascript
js对象简介与基本用法示例
Mar 13 Javascript
JS轮播图的实现方法2
Aug 25 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 #Javascript
JS+css3实现幻灯片轮播图
Aug 14 #Javascript
浅谈vue获得后台数据无法显示到table上面的坑
Aug 13 #Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 #Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
Aug 13 #Javascript
vue用elementui写form表单时,在label里添加空格操作
Aug 13 #Javascript
jQuery中event.target和this的区别详解
Aug 13 #jQuery
You might like
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
用javascript做拖动布局的思路
2008/05/31 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
node.js实现快速截图
2016/08/27 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
《狐假虎威》教学反思
2014/02/07 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
平遥古城导游词
2015/02/03 职场文书
保送生自荐信
2015/03/06 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
家长会后的感想
2015/08/11 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript