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 相关文章推荐
excel操作之Add Data to a Spreadsheet Cell
Jun 12 Javascript
在javascript将NodeList作为Array数组处理的方法
Jul 09 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
Nov 14 Javascript
浅谈javascript的调试
Jan 28 Javascript
js实现简单div拖拽功能实例
May 12 Javascript
JQuery工具函数汇总
Jun 15 Javascript
javascript实现根据3原色制作颜色选择器的方法
Jul 17 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
Jan 22 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
vue中的mvvm模式讲解
Jan 31 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
JS 文件传参及处理技巧分析
2010/05/13 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
Python单元测试框架unittest简明使用实例
2015/04/13 Python
python实现上传下载文件功能
2020/11/19 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
django列表筛选功能的实现代码
2020/03/27 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
实习评语
2013/12/16 职场文书
活动总结报告范文
2014/05/04 职场文书
教师读书活动总结
2014/05/07 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android