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 相关文章推荐
Opacity.js
Jan 22 Javascript
JQuery插件Style定制化方法的分析与比较
May 03 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
Aug 01 Javascript
JQuery日历插件My97DatePicker日期范围限制
Jan 20 Javascript
JS原型链怎么理解
Jun 27 Javascript
ECMAScript6快速入手攻略
Jul 18 Javascript
AngularJS 防止页面闪烁的方法
Mar 09 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
Sep 29 Javascript
VUE 实现复制内容到剪贴板的两种方法
Apr 24 Javascript
Vue路由权限控制解析
Nov 09 Javascript
一行JavaScript代码如何实现瀑布流布局
Dec 11 Javascript
JavaScript高级程序设计之基本引用类型
Nov 17 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 引用文件技巧
2010/03/02 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
子页向父页传值示例
2013/11/27 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
Python的Django框架使用入门指引
2015/04/15 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
班干部演讲稿
2014/04/24 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
师范生小学见习总结
2015/06/23 职场文书
同事去世追悼词
2015/06/23 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android