美文网首页视觉艺术
3、制作左右结构导航首页

3、制作左右结构导航首页

作者: wqjcarnation | 来源:发表于2020-03-04 16:16 被阅读0次

目标

  • 期待效果
  • layout.vue布局页面开发
  • 嵌套路由
  • NavMenu 导航菜单
  • 测试

期待效果

左侧导航,右侧显示导航到的url内容

image.png

第一步 Index.vue布局页面开发

后在Index.vue中运用Element UI Container 布局容器组件。


image.png

代码如下:

<template>
    <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>
</template>

<script>
    export default {
        data() {
            return {

            };
        },
        methods: {
            handleOpen(key, keyPath) {
                console.log(key, keyPath);
            },
            handleClose(key, keyPath) {
                console.log(key, keyPath);
            }
        }
    }
</script>

<style>
     .el-header, .el-footer {
    background-color: #B3C0D1;
    color: #333;
    text-align: center;
    line-height: 60px;
  }
  
  .el-aside {
    background-color: #D3DCE6;
    color: #333;
    text-align: center;
    line-height: 200px;
  }
  
  .el-main {
    background-color: #E9EEF3;
    color: #333;
    text-align: center;
    line-height: 160px;
  }
  
  body > .el-container {
    margin-bottom: 40px;
  }
  
  .el-container:nth-child(5) .el-aside,
  .el-container:nth-child(6) .el-aside {
    line-height: 260px;
  }
  
  .el-container:nth-child(7) .el-aside {
    line-height: 320px;
  }
</style>

目前效果

image.png

Container说明

Container,用于布局的容器组件,方便快速搭建页面的基本结构:
<el-container>:外层容器。当子元素中包含 <el-header> 或 <el-footer> 时,全部子元素会垂直上下排列,否则会水平左右排列。

<el-header>:顶栏容器。 <el-aside>:侧边栏容器。 <el-main>:主要区域容器。

调整页面,高度自适应

<template>
    <div id="aaa" >
    <el-container>
        <el-header>Header</el-header>
        <el-container>
            <el-aside ></el-aside>
            <el-main>Main</el-main>
        </el-container>
        <el-footer>Footer</el-footer>
    </el-container>
    </div>
</template>

<script>
</script>

<style>
    #aaa{
        margin: -60px 0 0 0;
        height: 100%;
    }
    .el-header,.el-footer{
        background-color: #B3C0D1;
        color: #333;
        text-align: center;
        line-height: 60px;
    }
    .el-aside {
        height: 100%;
        background-color: #D3DCE6;
        color: #333;
        text-align: center;
        line-height: 200px;
    }
    .el-main {
        height: 100%;
        background-color: #E9EEF3;
        color: #333;
        text-align: center;
        line-height: 160px;
    }
    html,body{
        height: 100%;
        
    }
    #app{
        height: 100%;
    }
    .el-container{
        height: 100%;
    }
</style>

第二步 编写路由文件,注意嵌套路由

routes: [{
        path: '/',
        name: 'HelloWorld',
        component: HelloWorld
    },
    /* {
        path: '/reg',
        name: 'Register',
        component: Register
    }, */
    {
        path: '/login',
        name: 'Login',
        component: Login
    },
    {
        path: '/index',
        name: 'Index',
        component: Index,
        // 嵌套路由
        children: [{
            // 这里不设置值,是把main作为默认页面
            path: '/reg',
            name: 'Register',
            component: Register
        }]
    }
]
   ......

第三步 NavMenu 导航菜单 组件

新建菜单组件Menu.vue,
直接复制下图里面的代码到Menu.vue然后微调样式。

image.png

<el-main>标签之间增加如下代码,用于渲染路由到的url

<router-view />

Menu.vue完整代码:

<template>
    
         <el-menu
          default-active="1"
          class="el-menu-vertical-demo"
          @open="handleOpen"
          @close="handleClose"
          active-text-color="#ffd04b"
          :default-active="$router.path"
          router>
          <el-submenu index="1">
            <template slot="title">
              <i class="el-icon-location"></i>
              <span>基础信息维护</span>
            </template>
            <el-menu-item-group>
              <template slot="title">分组一</template>
                    <el-menu-item index="reg">用户管理</el-menu-item>
            </el-menu-item-group>
          </el-submenu>
        </el-menu>
</template>

<script>
  export default {
    methods: {
      handleOpen(key, keyPath) {
        console.log(key, keyPath);
      },
      handleClose(key, keyPath) {
        console.log(key, keyPath);
      }
    }
  }
</script>

<style>
</style>

注意的地方:

image.png image.png

在index.vue中引用menu

<template>
    <div id="aaa" >
    <el-container>
        <el-header>欢迎:{{realName}}</el-header>
        <el-container>
            <el-aside >
               <!--菜单树-->
               <leftmenu></leftmenu>
            </el-aside>
            <el-main>
                <!--导航到的内容-->
                <router-view />
            </el-main>
        </el-container>
        <el-footer>Footer</el-footer>
    </el-container>
    </div>
</template>

<script>
  import leftmenu from '@/components/Menu'
  export default {
      data(){
          return{
              realName:'',
              useType:''
            }
      },
    components: {
        leftmenu
    },
    methods: {
      handleOpen(key, keyPath) {
        console.log(key, keyPath);
      },
      handleClose(key, keyPath) {
        console.log(key, keyPath);
      }
    },
    mounted:function(){
          let name=sessionStorage.getItem("userName");
          let type=sessionStorage.getItem("useType");
        this.realName=name;
        this.useType=type;
    }
  }
</script>

<style>
    #aaa{
        margin: -60px 0 0 0;
        height: 100%;
    }
    .el-header,.el-footer{
        background-color: #B3C0D1;
        color: #333;
        text-align: center;
        line-height: 60px;
    }
    .el-aside {
        height: 100%;
        background-color: #D3DCE6;
        color: #333;
        text-align: center;
        line-height: 200px;
    }
    .el-main {
        height: 100%;
        background-color: #E9EEF3;
        color: #333;
        text-align: center;
        line-height: 160px;
    }
    html,body{
        height: 100%;
        
    }
    #app{
        height: 100%;
    }
    .el-container{
        height: 100%;
    }
</style>

效果图

image.png

相关文章

  • 3、制作左右结构导航首页

    目标 期待效果 layout.vue布局页面开发 嵌套路由 NavMenu 导航菜单 测试 期待效果 左侧导航,右...

  • 制作左右结构导航页

    目标 期待效果 layout.vue布局页面开发 嵌套路由 NavMenu 导航菜单 测试 期待效果 左侧导航,右...

  • 1、首页

    首页左右结构,加导航菜单 效果图 嵌套路由,点击左侧实现右侧展示 1、开发userIndex.vue(简单页面 ...

  • 导航着色实现原理

    我们在制作网站的时候,都会看到当我们在首页的是时候,导航上“首页”和其他导航字体颜色会做一下区分,那么这个区分颜色...

  • RN之FlatList SectionList Swipeabl

    1 导航容器类 FlatNav 2.首页 3. FlatList

  • 仿写京东移动端首页

    一、项目简介 该项目是制作京东移动端页面,完成首页头部搜索和底部导航布局,利用 swiper 完成首页的轮播图效果...

  • 人的个性类型 - Word Power Made Easy 读书

    章节导航 系列首页 Chapter 3 - How to Talk About Personality Types...

  • 看医生 - Word Power Made Easy 读书笔记

    章节导航 系列首页 Chapter 3 - How to Talk About Personality Types...

  • 2018-08-03

    产投集团-党建平台项目1、首页模块、咨询模块新增快捷导航2、登录用户读取被存储快捷导航数据 3、新增首页工作圈模块...

  • 电商项目(三)

    (1)搭建前台系统。 (2)完成首页导航菜单。(学习jsonp) (3)完成CMS内容管理系统。 (4)完成首页大...

网友评论

    本文标题:3、制作左右结构导航首页

    本文链接:https://www.haomeiwen.com/subject/tycblhtx.html