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 arguments 传递给函数的隐含参数
Aug 21 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
Oct 10 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
Sep 02 Javascript
javascript小数四舍五入多种方法实现
Dec 23 Javascript
JS获取农历日期具体实例
Nov 14 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
Jun 19 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
基于原生JS实现图片裁剪
Aug 01 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
Feb 19 Javascript
JavaScript基础之this详解
Jun 04 Javascript
Vue 2.0双向绑定原理的实现方法
Oct 23 Javascript
Vue2.0 ES6语法降级ES5的操作
Oct 30 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
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
javascript与CSS复习(三)
2010/06/29 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
Keras实现DenseNet结构操作
2020/07/06 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
《十六年前的回忆》教学反思
2014/02/14 职场文书
师范类求职信
2014/06/21 职场文书
群众路线调研报告范文
2014/11/03 职场文书
春季运动会开幕词
2015/01/28 职场文书
门球健将观后感
2015/06/16 职场文书
新闻通讯稿模板
2015/07/22 职场文书
教师节随笔
2015/08/15 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python