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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
function foo的原型与prototype属性解惑
Nov 19 Javascript
js 判断一个元素是否在页面中存在
Dec 27 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
Feb 25 Javascript
node.js中的fs.chownSync方法使用说明
Dec 16 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
Mar 02 Javascript
javascript中字体浮动效果的简单实例演示
Nov 18 Javascript
Json按某个键的值进行排序
Dec 22 Javascript
Angular4表单验证代码详解
Sep 03 Javascript
详解使用angular框架离线你的应用(pwa指南)
Jan 31 Javascript
vue项目首屏加载时间优化实战
Apr 23 Javascript
JavaScript中变量提升机制示例详解
Dec 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
Dedecms常用函数解析
2008/02/01 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
node的process以及child_process模块学习笔记
2018/03/06 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
详解easyui 切换主题皮肤
2019/04/04 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
2020/07/21 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
python密码错误三次锁定(实例讲解)
2017/11/14 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
python中正则表达式与模式匹配
2019/05/07 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
Python持续监听文件变化代码实例
2020/07/22 Python
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
经典c++面试题六
2012/01/18 面试题
艺术系应届生的自我评价
2013/10/19 职场文书
清洁工表扬信
2014/01/08 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
工地安全检查制度
2014/02/04 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
交通事故调解协议书
2015/05/20 职场文书
2016年学校招生广告语
2016/01/28 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL