element-ui 是基本的页面结构

卸载vue-cli

npm uninstall vue-cli -g 

安装vue-cli

npm install -g @vue/cli

 

 

标签

el-container  整个页面框架

el-aside  构建左侧菜单

      <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
        <!--default-openeds: 默认打开-->
        <!--default-active:默认选中-->
        <el-menu :default-openeds="['1', '3']" :default-active="'1-2'">
          <el-submenu index="1">
            <template slot="title"><i class="el-icon-message"></i>导航一</template>
              <el-menu-item index="1-1">选项1</el-menu-item>
              <el-menu-item index="1-2">选项2</el-menu-item>
              <el-menu-item index="1-3">选项3</el-menu-item>
            <el-submenu index="1-4">
              <template slot="title">选项4</template>
              <el-menu-item index="1-4-1">选项4-1</el-menu-item>
            </el-submenu>
          </el-submenu>
        </el-menu>
      </el-aside>

el-menu  左侧菜单内容

属性

    <!--default-openeds: 默认打开-->
    <!--default-active:默认选中-->

el-submenu el-menu的子元素

index   文本类型,不能数字类型

 

 

 

 

实现一个基本页面结构

4个子功能模块,动态加载

 

 

 

App.vue

<template>
  <div class="home">
    <!--项目首页-->
    <router-view></router-view>
  </div>
</template>

router/index.js

路由配置,各个功能模块,子模块的名称,path等信息在此处配置完成。

import Vue from 'vue'
import VueRouter from 'vue-router'


import PageOne from "../views/PageOne";
import PageTwo from "../views/PageTwo";
import PageThree from "../views/PageThree";
import PageFour from "../views/PageFour";
import App from "../App";
import Index from "../views/Index";
Vue.use(VueRouter)
//routes  页面路径,组件名称的定义,
  const routes = [
  {
    path: '/',
    name: '导航1',
    component: Index,
    //默认打开PageOne
    redirect:"/PageOne",
    children:[
      {
        path: '/PageOne',
        name: 'page1',
        component: PageOne
      },
      {
        path: '/PageTwo',
        name: 'page2',
        component: PageTwo
      }
    ]
  },
  {
    path: '/',
    name: '导航2',
    component: Index,
    children:[
      {
        path: '/PageThree',
        name: 'page3',
        component: PageThree
      },
      {
        path: '/PageFour',
        name: 'page4',
        component: PageFour
      }
    ]
  },


]

const router = new VueRouter({
  routes
})

export default router

Index.vue

这个页面通过对router的操作,把各个页面组织起来

 

<template>
    <div class="home">
        <el-container style="height: 500px; border: 1px solid #eee">
            <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
                <!--核心代码,通过for循环动态引入子组件  -->
                <el-menu  router :default-openeds="['0','1']">
                    <el-submenu v-for="(item,index) in $router.options.routes" :index="index+''" >
                        <template slot="title"><i class="el-icon-setting"></i>{{item.name}}</template>
                        <!--index动态绑定,就可以动态访问子组件-->
                        <el-menu-item v-for="(item2,index2) in item.children" :index="item2.path" :class="$route.path==item2.path?'is-active':''">
                            {{item2.name}}
                        </el-menu-item>
                    </el-submenu>
                </el-menu>
            </el-aside>

            <el-container>
                <el-header style="text-align: right; font-size: 12px">
                    <el-dropdown>
                        <i class="el-icon-setting" style="margin-right: 15px"></i>
                        <el-dropdown-menu slot="dropdown">
                            <el-dropdown-item>查看</el-dropdown-item>
                            <el-dropdown-item>新增</el-dropdown-item>
                            <el-dropdown-item>删除</el-dropdown-item>
                        </el-dropdown-menu>
                    </el-dropdown>
                    <span>王小虎</span>
                </el-header>

                <el-main>
                    <router-view></router-view>
                </el-main>
            </el-container>
        </el-container>
    </div>
</template>


<style>
    .el-header {
        background-color: #B3C0D1;
        color: #333;
        line-height: 60px;
    }

    .el-aside {
        color: #333;
    }
</style>

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

            }
        }
    };
</script>

其他

是各个独立功能模块具体实现

PageOne

PageTwo

PageThree

PageFour

 

 install --save element-ui  解决问题

出现如下编译报错时:

./node_modules/_element-ui@2.13.2@element-ui/lib/theme-chalk/index.css (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2!./node_modules/_element-ui@2.13.2@element-ui/lib/theme-chalk/index.css) Module build failed (from ./node_modules/postcss-loader/src/index.js): Error: ENOENT: no such file or directory, open 'E:\Java\MyGitHub\gitee\blog\blogwang\vue-element-01\node_modules\_element-ui@2.13.2@element-ui\lib\theme-chalk\index.css'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值