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代码运行不出来执行错误的可能情况整理
Oct 18 Javascript
json属性名为什么要双引号(个人猜测)
Jul 31 Javascript
JavaScript拆分字符串时产生空字符的解决方案
Sep 26 Javascript
javascript实现信息增删改查的方法
Jul 25 Javascript
easyui Draggable组件实现拖动效果
Aug 19 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
基于jQuery实现放大镜特效
Oct 19 Javascript
js前端解决跨域问题的8种方案(最新最全)
Nov 18 Javascript
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
Jun 24 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
May 12 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
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
php日历制作代码分享
2014/01/20 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
详解python之简单主机批量管理工具
2017/01/27 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python实现简单俄罗斯方块
2020/03/13 Python
Python生成器generator原理及用法解析
2020/07/20 Python
python文件路径操作方法总结
2020/12/21 Python
CSS3 选择器 基本选择器介绍
2012/01/21 HTML / CSS
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
小区门卫工作职责
2013/12/14 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书