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 相关文章推荐
ext监听事件方法[初级篇]
Apr 27 Javascript
今天是星期几的4种JS代码写法
Sep 17 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
Oct 23 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
Feb 05 Javascript
angularjs之$timeout指令详解
Jun 13 Javascript
JavaScript实现三级联动效果
Jul 15 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
Sep 20 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
Mar 20 jQuery
angular 内存溢出的问题解决
Jul 12 Javascript
video.js 一个页面同时播放多个视频的实例代码
Nov 27 Javascript
爬虫利器Puppeteer实战
Jan 09 Javascript
Vue调用后端java接口的实例代码
Oct 28 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
PHP的面向对象编程
2006/10/09 PHP
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
js 对小数加法精度处理示例说明
2013/12/27 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
javascript求日期差的方法
2016/03/02 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
vue中引入mxGraph的步骤详解
2019/05/17 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
最新英语专业学生求职信范文
2013/09/21 职场文书
成考报名单位证明范本
2014/01/16 职场文书
超市重阳节活动方案
2014/02/10 职场文书
《金子》教学反思
2014/04/13 职场文书
社会工作专业求职信
2014/07/15 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
暂住证明怎么写
2015/06/19 职场文书
初中生活随笔
2015/08/15 职场文书
感谢信的技巧及范例
2019/05/15 职场文书