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与CSS复习(二)
Jun 29 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
Mar 15 Javascript
slideToggle+slideup实现手机端折叠菜单效果
May 25 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
Sep 12 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 Javascript
微信小程序公用参数与公用方法用法示例
Jan 09 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
vue路由传参三种基本方式详解
Dec 09 Javascript
JavaScript 中判断变量是否为数字的示例代码
Oct 22 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
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 购物车实例(申精)
2009/05/11 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
js实现表格筛选功能
2017/01/18 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
Python中使用中文的方法
2011/02/19 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
详解python的数字类型变量与其方法
2016/11/20 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
python3.4爬虫demo
2019/01/22 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
Python count函数使用方法实例解析
2020/03/23 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
夜大毕业生自我评价分享
2013/11/10 职场文书
机修工岗位职责
2013/11/24 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
校园达人秀策划书
2014/01/12 职场文书
2015教师年度考核评语
2015/03/25 职场文书