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 相关文章推荐
JScript分割字符串示例代码
Sep 04 Javascript
JavaScript 里的类数组对象
Apr 08 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
jquery分页插件jquery.pagination.js使用方法解析
Apr 01 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
May 11 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
Jan 18 Javascript
js实现随机数字字母验证码
Jun 19 Javascript
p5.js入门教程和基本形状绘制
Mar 15 Javascript
纯JS实现五子棋游戏
May 28 Javascript
node+vue实现文件上传功能
May 28 Javascript
Element InfiniteScroll无限滚动的具体使用方法
Jul 27 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
表单内同名元素的控制
2006/11/22 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
Express的路由详解
2015/12/10 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
js实现漫天星星效果
2017/01/19 Javascript
巧用canvas
2017/01/21 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
python实现随机漫步方法和原理
2019/06/10 Python
python实现五子棋小程序
2019/06/18 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
毕业生实习鉴定
2013/12/11 职场文书
医院院务公开实施方案
2014/05/03 职场文书
财务务虚会发言材料
2014/10/20 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
Python面向对象之内置函数相关知识总结
2021/06/24 Python