大致效果图

其中上方文头部导航,左边为菜单选项,中间为index页面。

进行组件化

新建目录如下,新建文件如下

其中分为两个文件夹,一个为views文件夹,一个为components文件夹,一个存放相关文件页面信息,一个存放相关的组件信息。

创建相关的url

创建相关的页面url 在router目录下新建相关的文件, 代码如下

 {path: '/index',name: 'index',component: () => import('../views/Index')},

 

index页面组件信息

index页面相关代码文件如下


<template><div><BoxHeader :msg="msg"></BoxHeader><div><el-container><Menum></Menum><BoxIndex v-show="cur==0"></BoxIndex><HelloWorld v-show="cur==1"></HelloWorld></el-container></div></div>
</template>
<style>.el-header {background-color: #B3C0D1;color: #333;}.el-aside {color: #333;}
</style>
<script>import Menum from "../components/Menum";import BoxIndex from "../components/BoxIndex";import BoxHeader from "../components/BoxHeader";import HelloWorld from "../components/HelloWorld";export default {components: {Menum,BoxIndex,BoxHeader,HelloWorld},data() {return {msg: 'https://www.iming.info/',cur: 1}}}
</script>

其中把三个组件进行相关的注册,注册到页面中。这三个组件分别为BoxHeader,BoxIndex,Menum文件,对这三个文件进行相关的注册。

 

头部文件

进入头部文件,这里对头部文件进行代码,书写,代码如下

<template><div class="text1"><a href="http://localhost:8080/logout" class="text1">退出</a></div>
</template><script>export default {name: 'BoxHeader',props: {msg: String}}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>h3 {margin: 40px 0 0;}ul {list-style-type: none;padding: 0;}li {display: inline-block;margin: 0 10px;}.text1 {text-align: right;padding: 10px;font-size: 20px;}.text1 a{text-decoration: none;}
</style>

 

菜单文件

菜单文件代码如下。并添加相关的事件绑定,确保能够菜单伸缩。

<template><el-aside width="200px"><el-menu :default-openeds="['1']"><el-submenu index="1"><template slot="title">保险产品管理</template><el-menu-item-group><el-menu-item index="1-1">保险产品查询</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="2"><template slot="title">用户管理</template><el-menu-item-group><el-menu-item index="2-1">封号管理</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="3"><template slot="title">问答管理</template><el-menu-item-group><el-menu-item index="3-1">问题管理</el-menu-item><el-menu-item index="3-2">回答管理</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="4"><template slot="title">数据统计</template><el-menu-item-group><el-menu-item index="4-1">保险产品数据</el-menu-item><el-menu-item index="4-2">保险公司数据</el-menu-item></el-menu-item-group></el-submenu></el-menu></el-aside>
</template><script>export default {name: 'Menum',methods: {ming(){console.log("3333");}}}
</script>

上方使用的是Element Ui 框架实现

 

主页文件

这里主页文件为几个简单的主页文件。一个为示例,一个为主页,代码分别如下

<template><el-container><el-header><el-dropdown><i></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><el-table :data="tableData"><el-table-column prop="date" label="日期" width="140"></el-table-column><el-table-column prop="name" label="姓名" width="120"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table></el-main></el-container>
</template><script>export default {name: 'HelloWorld',props: {msg: String}}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>h3 {margin: 40px 0 0;}ul {list-style-type: none;padding: 0;}li {display: inline-block;margin: 0 10px;}a {color: #42b983;}
</style>
<template><div class="hello"><h1>{{ msg }}</h1><p>For a guide and recipes on how to configure / customize this project,<br>check out the<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.</p><h3>Installed CLI Plugins</h3><ul><li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li><li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li><li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-vuex" target="_blank" rel="noopener">vuex</a></li><li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li></ul><h3>Essential Links</h3><ul><li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li><li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li><li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li><li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li><li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li></ul><h3>Ecosystem</h3><ul><li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li><li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li><li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li><li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li><li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li></ul></div>
</template><script>
export default {name: 'HelloWorld',props: {msg: String}
}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {margin: 40px 0 0;
}
ul {list-style-type: none;padding: 0;
}
li {display: inline-block;margin: 0 10px;
}
a {color: #42b983;
}
</style>

 

进行事件绑定

这里由于跨两个组件,所以进行事件绑定,当子组件触发事件以后,先调用子组件的方法,再通过相关参数,调用父组件的方法,通过调用父组件的方法,实现更改父组件页面的值。

具体流程如下

父组件创建相关方法,并绑定事件

创建相关方法

 methods: {changeData(){console.log(444444);this.cur = 1;}}

绑定相关事件

 <Menum @callFather="changeData"></Menum>

子组件创建相关方法并调用

ming(){console.log("3333");this.$emit("callFather");}

子组件创建相关方法并完成方法绑定

   <el-menu-item-group><el-menu-item index="1-1" v-on:click="ming">保险产品查询</el-menu-item></el-menu-item-group>

子组件全部代码如下

<template><el-aside width="200px"><el-menu :default-openeds="['1']"><el-submenu index="1"><template slot="title">保险产品管理</template><el-menu-item-group><el-menu-item index="1-1" v-on:click="ming">保险产品查询</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="2"><template slot="title">用户管理</template><el-menu-item-group><el-menu-item index="2-1">封号管理</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="3"><template slot="title">问答管理</template><el-menu-item-group><el-menu-item index="3-1">问题管理</el-menu-item><el-menu-item index="3-2">回答管理</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="4"><template slot="title">数据统计</template><el-menu-item-group><el-menu-item index="4-1">保险产品数据</el-menu-item><el-menu-item index="4-2">保险公司数据</el-menu-item></el-menu-item-group></el-submenu></el-menu></el-aside>
</template><script>export default {name: 'Menum',methods: {ming(){console.log("3333");this.$emit("callFather");}}}
</script>

父组件全部代码如下

<template><div><BoxHeader :msg="msg"></BoxHeader><div><el-container><Menum @callFather="changeData"></Menum><BoxIndex v-show="cur==0"></BoxIndex><HelloWorld v-show="cur==1"></HelloWorld></el-container></div></div>
</template>
<style>.el-header {background-color: #B3C0D1;color: #333;}.el-aside {color: #333;}
</style>
<script>import Menum from "../components/Menum";import BoxIndex from "../components/BoxIndex";import BoxHeader from "../components/BoxHeader";import HelloWorld from "../components/HelloWorld";export default {components: {Menum,BoxIndex,BoxHeader,HelloWorld},data() {return {msg: 'https://www.iming.info/',cur: 0}},methods: {changeData(){console.log(444444);this.cur = 1;}}}
</script>

完成效果图

有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号

好文章,我在看❤️

实践 | Element UI + Vue 管理系统首页相关推荐

  1. vue + element ui 的后台管理系统框架_从零开始搭建 VUE + Element UI后台管理系统框架...

    点击右上方红色按钮关注"web秀",让你真正秀起来 前言 后台管理系统前端框架,现在很流行的形式都是,上方和左侧都是导航菜单,中间是具体的内容.比如阿里云.七牛云.头条号.百家号等 ...

  2. 【Vue 快速入门】从零开始搭建 VUE + Element UI后台管理系统框架

    [Vue 快速入门]从零开始搭建 VUE + Element UI后台管理系统框架 前言 后台管理系统前端框架,现在很流行的形式都是,上方和左侧都是导航菜单,中间是具体的内容.比如阿里云.七牛云.头条 ...

  3. Element ui+vue前端框架组件主题美化后台管理系统模板html

    最新设计了一套Element ui主题模板 演示地址:Element ui+vue前端框架组件主题美化后台管理系统模板 Element ui版本号:2.15.12        vue版本号:2.7. ...

  4. 为element ui+Vue搭建的后台管理项目添加图标

    问题:使用element UI 及Vue 2.0搭建一个后台管理项目,想要在页面中为其添加对勾及叉的图标. 解决方案:问题涉及到为页面添加图标.有两种解决方案. (1)Element官网提供了Icon ...

  5. Element ui后台管理系统界面设计

    自己学了一点Element ui前端框架,然后尝试设计了几个页面,仅供学习参考!

  6. element ui+vue实现打印

    1.安装组件 //安装print-js npm install print-js --save //删除print-js npm uninstall print-js //安装固定版本 npm ins ...

  7. 基于springboot+element ui+vue的java快速开发平台,集成html5工作流设计器,flowable, element ui 表单设计器

    前后端分离.maven多模块开发,方便多人协同开发 后端选型:springboot2 + mybatis + shiro + jwt token + flowable 前端选型:vue + eleme ...

  8. 使用element ui + vue时出现vue.runtime.esm.js:1737 TypeError: Cannot read property ‘$options‘ of undefined

    原因是</el-form-item>标签未在</el-form>标签范围内

  9. Element UI + Vue 批量上传图片(只请求一次)

    在使用elementui上传组件时,可以一次选择多个文件上传,设置:multiple="true"可以选择多个文件,但是文件请求的时候还是分开请求,多少个图片请求多少次. 现在需求 ...

最新文章

  1. 简化可视SLAM应用程序的开发
  2. android stadio 打开别人的工程 一直在编译中
  3. Leon系列处理器结构
  4. 柴天佑pdf 自适应控制_串讲:控制理论:自适应控制(APC)
  5. 一个Web OS - Windows4All
  6. boost::spirit模块使用 phoenix 进行实际表达式评估的语法和语义操作的测试程序
  7. concat mysql sql注入_Mysql中用concat函数执行SQL注入查询的方法
  8. WORD如何定义新项目符号?
  9. 【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站
  10. 手把手教你强化学习 (四)动态规划与策略迭代、值迭代
  11. 160429、nodejs--Socket.IO即时通讯
  12. 奇异值分解(Singular Value Decomposition, SVD)——快速教程
  13. Android平板查看网卡mac,如何看电脑网卡和手机mac地址
  14. 樊登读书会掌控读后感_樊登读书会观后感
  15. java实现lbs_如何在 Java 中利用 redis 实现 LBS 服务
  16. 输入圆的的半径r 和一个整型数k,当k=1 时,计算圆的面积;当k=2 时,计算圆的周长;当k = 3 时,既要求求圆的周长也要求出圆的面积
  17. 有点儿累了,最近特别能吃
  18. SW3518快充方案
  19. 【2023电赛备赛】使用sysconfig对ccs进行图形化编程
  20. 墨者学院X-Forwarded-For注入漏洞实战

热门文章

  1. bash type php,Linux Bash Shell 寻找PHP(网站)挂马,后门
  2. openfire php注册,openfire php 初始配置
  3. wxpython显示图片_wxpython下图片局部显示的方法
  4. idea base64encoder没有jar包_老师,免费版的IDEA为啥不能使用Tomcat?
  5. openGL es实现小实例
  6. qq头像计算机系,QQ头像
  7. proteus如何添加stm32_新手入门轻松掌握 STM32 串口应用
  8. (软件工程复习核心重点)第一章软件工程概论习题
  9. 修改linevent的4096限制----更多evbuffer操作函数
  10. 用户模式下的线程同步