vue设置导航栏、侧边栏为公共页面的例子


Posted in Javascript onNovember 01, 2019

首先,项目结构如下:

vue设置导航栏、侧边栏为公共页面的例子

想要让导航栏、侧边栏变为公共页面,则要在App.vue页面中加入。假设已经有了Header.vue和Left.vue,这里就不贴出来了,App.vue代码如下:

<template>
 <div id="app">
  <!-- 其他页 -->
  <el-container >
   <el-header>
    <!-- 导航栏 -->
     <header-nav></header-nav>
   </el-header>
  <el-container>
   <el-aside width="250px">
    <!-- 侧边栏 -->
     <left></left>
   </el-aside>
   <el-main>
    <!-- Body -->
     <router-view></router-view>
   </el-main>
  </el-container>
  </el-container>
 
  <!-- 登录页 -->
  <router-view ></router-view>
  </div>
</template>
 
<script>
import header from './components/Header.vue';
import left from './components/Left.vue';
 
export default{
  components: {
    headerNav: header,
    left: left
   }
}
 
</script>
 
<style>
 
</style>

此时运行会发现,所有的页面都被加上了这两个公共页面,而实际场景中,我们往往希望登录页是不需要导航栏和侧边栏的,那么就需要规避掉登录页。

这时,就可以采用keep-alive结合$route.meta来实现这个功能。keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。$route.meta则可以选择让需要的页面才展示。修改App.vue,如下:

<template>
 <div id="app">
  <!-- 其他页 -->
  <el-container v-if="$route.meta.keepAlive">
   <el-header>
    <keep-alive>
    <!-- 导航栏 -->
     <header-nav></header-nav>
    </keep-alive>
   </el-header>
  <el-container>
   <el-aside width="250px">
    <!-- 侧边栏 -->
    <keep-alive>
     <left></left>
    </keep-alive>
   </el-aside>
   <el-main>
    <!-- Body -->
     <router-view></router-view>
   </el-main>
  </el-container>
  </el-container>
 
  <!-- 登录页 -->
  <router-view v-if="!$route.meta.keepAlive"></router-view>
  </div>
</template>
 
<script>
import header from './components/Header.vue';
import left from './components/Left.vue';
 
export default{
  components: {
    headerNav: header,
    left: left
   }
}
 
</script>
 
<style>
 
</style>

index.js代码如下:

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
 
import Login from '@/views/Login'
import index from '@/views/index'
import versionList from '@/views/versionList'
 
Vue.use(Router)
 
export default new Router({
 routes: [
  {
   path: '/',
   name: 'login',
   component: Login,
   meta: {
    keepAlive: false
   }
  },
  {
   path: '/index',
   name: 'index',
   component: index,
   meta: {
    keepAlive: true
   }
  },
  {
   path: '/versionList',
   name: 'versionList',
   component: versionList,
   meta: {
    keepAlive: true
   }
  },
 ]
})

通过设置keepAlive的值就可以实现除了登录页不展示公共页面,在其他页面均展示的功能。

以上这篇vue设置导航栏、侧边栏为公共页面的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Chart 插件整理
Jun 18 Javascript
通过javascript把图片转化为字符画
Oct 24 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 Javascript
Javascript变量作用域详解
Dec 06 Javascript
angularJS中$apply()方法详解
Jan 07 Javascript
js实现选中复选框文字变色的方法
Aug 14 Javascript
jQuery EasyUI Tab 选项卡问题小结
Aug 16 Javascript
jQuery如何防止Ajax重复提交
Oct 14 Javascript
微信开发 js实现tabs选项卡效果
Oct 28 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
Sep 13 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
Vue中jsx不完全应用指南小结
Nov 01 #Javascript
vue导航栏部分的动态渲染实例
Nov 01 #Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 #Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 #Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 #Javascript
浅析js实现网页截图的两种方式
Nov 01 #Javascript
javascript使用链接跨域下载图片
Nov 01 #Javascript
You might like
几种显示数据的方法的比较
2006/10/09 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
七款最流行的PHP本地服务器分享
2013/02/19 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
小程序实现锚点滑动效果
2019/09/23 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
Python实现随机选择元素功能
2017/09/14 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
师范生自荐信范文
2013/10/06 职场文书
英语专业学生的自我评价
2013/12/30 职场文书
营业员演讲稿
2013/12/30 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
实习生辞职信范文
2015/03/02 职场文书
求职导师推荐信范文
2015/03/27 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android