【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)

摘要:
标题<主</el-main>{{item.navItem}}<spanslot=“title”@click=“showAndHideSiderBar”>{{tipsWords}}<iclass=“el图标设置”>/i>spanslot=“title”>/span>--><*/}&lt:<

上一节讲了简单封装Http请求并调用登陆的Api接口

这节主要说Home的布局展示

一、设置布局代码

  Home页布局参考Elementui中的布局代码(采用上,左右结构)  当然也可以用其他的布局

<el-container>
  <el-header>Header</el-header>
  <el-container>
    <el-aside width="200px">Aside</el-aside>
    <el-main>Main</el-main>
  </el-container>
</el-container>

  添加代码后点击预览,会发现界面只有半截,不是全部铺满的,像这样的:

【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)第1张

 造成这样的原因就是body或者外面的div属性里height不是100%,对应的给body及外层的div加上height=100%,将它撑开就可以显示正常了。

二、增加左侧导航(这里将导航页面新建到components文件夹下把导航页面当组件引进Home页,同理Header将来也用类似的组件替换)

  a、在components新建navMenu.vue文件

  b、在Elementui中将导航相关的代码拷贝过来,做稍许加工

【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)第2张【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)第3张
<template>
  <el-menu
    default-active="1-4-1"
    class="el-menu-vertical-demo"
    @open="handleOpen"
    @close="handleClose"
    :collapse="isCollapse"
    background-color="#545c64"
    text-color="#fff"
    active-text-color="#ffd04b"
  >
    <el-menu-item
      v-for="(item, key) of menuList"
      :key="key"
      :index="item.name"
    >
      <i
        :model="isCollapse"
        @click="showAndHideSiderBar"
        :class=item.class
      ></i>
      <span slot="title">{{ item.navItem }}</span>
    </el-menu-item>
    <!-- <el-menu-item>
        <i :model="isCollapse" @click="showAndHideSiderBar" :  :style="sideBarStyleObj"></i>
        <span slot="title" @click="showAndHideSiderBar">{{tipsWords}}</span>
        </el-menu-item>
        <el-menu-item index="1-1">
            <i class="el-icon-message"></i>
            <span slot="title">学生管理</span>
        </el-menu-item>

        <el-menu-item  index="1-2">
            <i class="el-icon-menu"></i>
            <span slot="title">成绩管理</span>
        </el-menu-item>

        <el-menu-item  index="1-3">
            <i class="el-icon-setting"></i>
            <span slot="title">专业管理</span>
        </el-menu-item> -->
  </el-menu>
</template>

<style>
.el-menu-vertical-demo:not(.el-menu--collapse) {
  /*  200px; */
}

</style>

<script>
export default {
  data() {
    return {
      isCollapse: false,
      menuList: [
        { name: "/", navItem: "收缩/展开", class:"el-icon-d-arrow-right"},
        { name: "/Students", navItem: "学生列表", class:"el-icon-menu"},
        { name: "/Major", navItem: "专业管理", class:"el-icon-date" }
      ],
      activeIndex:'/Students',
    };
  },
  methods: {
    //侧边栏打开时关联事件
    handleOpen(key, keyPath) {
      console.log(key, keyPath);
    },
    //侧边栏收缩时关联事件
    handleClose(key, keyPath) {
      console.log(key, keyPath);
    },
    //收缩或展开侧边栏
    showAndHideSiderBar(){
        this.isCollapse = !this.isCollapse
        console.log(this.isCollapse);
    },
  }
};
</script>
View Code

  c、注意这里有个导航栏的展开和收缩,需要给标记位来实现,具体也可参考elementui官方示例

  d、在Home页面引入我们创建的navMenu组件,引入组件有两种方式,这里写最常见的一种,还有一种下节来讲

【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)第4张【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)第5张
<template>
  <el-container>
    <el-header>
      <headerMenu />
    </el-header>
    <el-container>
      <el-aside :width="isCollapse ? '64px':'200px'">
        <myMenu />
      </el-aside>
      <el-main>
        <router-view></router-view>
      </el-main>
    </el-container>
  </el-container>
</template>

 

<script>
import myMenu from "@/components/navMenu";
import headerMenu from "@/components/headerMenu";
export default {
  data() {
    return {
      isCollapse: false,
    };
  },
  components: {
    myMenu,
    headerMenu,
  },
};
</script>

<style>
.el-container {
  height: 100%;
}
.el-aside {
  background-color: #545c64;
}
.el-main {
  background-color: #eaedf2;
}
.el-header{
  width: 100%;
  background-color: #545c64;
}
</style>
View Code

  导入后预览就可以了

三、新增Header组件并导入上部Header

  a、同样在components文件加下新增nvaHeader.vue文件

【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)第6张【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)第7张
<template>
    <div class="header">欢迎:{{userName}}
        <el-dropdown>
        <span class="el-dropdown-link">
            更多<i class="el-icon-arrow-down el-icon--right"></i>
        </span>
        <el-dropdown-menu slot="dropdown">
            <el-dropdown-item @click="handlePerson">个人设置</el-dropdown-item>
            <el-dropdown-item @click="handleLoginOut">退出</el-dropdown-item>
        </el-dropdown-menu>
        </el-dropdown>
    </div>
</template>

<script>
export default {
    data(){
        return{
            userName:'admin'
        }
    },
    methods:{
        //进入个人设置页面
        handlePerson(){
            console.log('用户点击了个人设置')
        },
        //用户退出
        handleLoginOut(){
            console.log('用户点击了退出设置')
        }
    }

}
</script>

<style>
    .header{
        text-align: right;
        background-color: #545c64;
        color:white;
        width: 100%;
    }
    .el-dropdown-link{
        color:yellow
    }
</style>
View Code

  b、同上在Home页将nvaHeader文件引入

四、显示右侧主页面信息

  a、显示右侧信息时,可更改Home的布局代码,具体如下则默认进入页面后,根据路由配置加载对应的页面

<el-main>Main</el-main>改为<el-main><router-view></router-view></el-main>
<el-container>
    <el-header>
      <headerMenu />
    </el-header>
    <el-container>
      <el-aside :width="isCollapse ? '64px':'200px'">
        <myMenu />
      </el-aside>
      <el-main>
        <router-view></router-view>
      </el-main>
    </el-container>
  </el-container>
</template>

   PS:如果没有写好的页面,直接保留Main的标记提示也是可以的

【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)第8张

这样Home的布局页面也就写好了

免责声明:文章转载自《【Vue入门】利用VueCli搭建基本框架--在Home页实现上左右基本布局(五)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Kubernetes进阶实战读书笔记:StatefulSet控制器(资源升级)vb中从域名得到IP及从IP得到域名下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

一种极简的异步超时处理机制设计与实现(C#版)

1.引言 当执行某些动作之后,会期待反馈。最终要么是得到了结果,要么就是超时了。当超时发生时,可能是期望得到通知,或是希望能自动重试,等等。于是设计了一种通用的异步超时的处理机制,以期通过简洁易理解的方式完成超时的处理过程。 2.对外接口设计 从使用的角度,调用方期望的是“指定超时时长,时间到自动执行指定过程”,由此可以得出外部的操作接口参数。从功能角度来...

Qt QWidget控件透明动画实现

QWidget控件透明动画实现 要做子控件透明需要用到QGraphicsOpacityEffect类 使用例子如下代码: QGraphicsOpacityEffect * m_pGraphicsOpacityEffect1; QPropertyAnimation * m_pOpacityAnimation1; m_pGraphicsOpacityEf...

webservice2

按照 当然,里面没写清楚如何配置第三方jar 结果一访问就报错:org.codehaus.xfire.transport.http.XFireConfigurableServlet 4年前就搞过ws的了,结果只是个helloworld, 当时也是没有完全弄明白,而且一直没有总结,所以,再次碰到ws还是有所不明白,这不,现在连helloworld 都做不出来...

Django实战(二)之模板语言

该实战教程基于菜鸟教程,菜鸟教程可参考:http://www.runoob.com/django/django-template.html 模板语法,每个框架都有其支持的模板语法,Django的模板语法在我看来与vue.js倒有一些相似处 ,比如它们的模板语法中参数为{{parm}}。 本篇所用到的例子,仍然基于实战(一) 在HelloWorld(该文件夹...

canvas drawImage图片不显示问题

初次学习canvas,用来做笔记记录下遇到的问题及解决方案 这里是要将一张图片写到canvas里,按照网上搜索,初写了段代码,可是却没显示,以为是路径问题,不能跨域名使用,后来改为相对路径后,仍然无效,如下: <!DOCTYPE html> <html lang="en"> <head> <meta cha...

h5语音播放(移动端)

<!--语音导航 start--> <div style="border:0px solid red;100%;height:72px;position:relative;overflow-y: hidden;"> <img src="http://t.zoukankan.com/static/front/images/vo...