当前位置:   article > 正文

Vue3+Element-Plus 主页Aside布局设计 二四_vue3+element-plus简单项目首页代码

vue3+element-plus简单项目首页代码

1.左侧菜单布局设计效果

 2. 左侧菜单布局分析

  • 菜单分为两级,并且有折叠效果

 3.用到的菜单组件(Meun)介绍  Menu 菜单 | Element Plus (gitee.io)

  1.  el-menu  整个左侧菜单最外层必须使用menu 包裹着
  2.  el-submenu 一级菜单组件
  3.  el-icon 菜单图标项
  4.  span 菜单的文本 
  5.  el-menu-item 二级菜单组件
  1. <!-- 侧边栏菜单区域 -->
  2. <el-menu
  3. active-text-color="#ffd04b"
  4. background-color="#545c64"
  5. text-color="#fff">
  6. <!-- 一级菜单 -->
  7. <el-submenu index="1">
  8. <!-- 一级菜单模板区域 -->
  9. <template #title>
  10. <!-- 图标 -->
  11. <el-icon><location /></el-icon>
  12. <!-- 文本 -->
  13. <span>导航一</span>
  14. </template>
  15. <!-- 二级菜单 -->
  16. <el-menu-item index="1-4-1">
  17. <!-- 二级菜单模板区域 -->
  18. <template #title>
  19. <!-- 图标 -->
  20. <el-icon><document /></el-icon>
  21. <!-- 文本 -->
  22. <span>导航二</span>
  23. </template>
  24. </el-menu-item>
  25. </el-submenu>
  26. </el-menu>

注意:原本 element-plus 一级菜单官网是用el-sub-menu,但是这样好像不起作用,所以就改成了element-ui 这种el-submenu 这写法。有知道的小伙伴可以留言。

4. 布局了解清楚后,我们得知道如何按需去改造及使用这个菜单组件

 4.1 打开官网,找到 Menu 菜单 | Element Plus (gitee.io) 选择合适的布局,粘贴代码

 4.2 需要学会梳理基本代码结构

  • 删除暂时使用不上的属性,可以让代码结构更加清晰一些

4.3 结构梳理完成后,下一步在需要先在element.js 导入并注册对应的组件 

  • 特别提醒,每开发一个页面所使用到的组件,如果是按需引用,一定要先导入对应组件,再进行功能开发

5. 查看页面效果 

5.1 页面不显示相关图标,原因是需要安装icon 图标依赖

5.2 打开可视化面板,点击依赖,安装依赖

 5.3  点击运行依赖,搜索element-plus/icons 依赖项,点击安装

5.4 安装完成后,需要在element.js 按需导入对应的图标样式

 1.例如,页面使用到了一个location (位置) 的图标

 2. element.js 导入

 3. 重新编译后运行

啊这,奇丑无比图标。这是为何呢。

5. 哎,原来是忘记把图标组件注册了,那就去element.js 配置文件全局注册一下

6. 刷新页面看效果

 7.小技巧 element-ui 和element-plus 图标使用方式有区别

  • element-plus 是按需注册,用啥样的图标,需要手动注册啥样的图标
  1. // element-ui 图标使用方式
  2. <i class="el-icon-edit"></i>
  3. // element-plus 使用方式
  4. <el-icon >
  5. <edit></edit>
  6. </el-icon>

 8. 特殊图标menu引入注意事项

  •  menu 图标需要加别名进行图标呈现

  • 组件页面使用示例 

 9.vue 3 +element-plus 项目element.js 组件命名引入 小技巧

  • 例如当页面中使用到一个组件,名称为el-button

由于组件使用的是驼峰式命名规则,那么在 element.js 导入该组件时。

需要写成,ElButton


5. 到此页面改造完成效果

6. Home.vue 代码

  1. <template>
  2. <el-container class="home_container">
  3. <!-- 头部区域 -->
  4. <el-header>
  5. <div>
  6. <img src="../assets/heima.png" alt="" />
  7. <span>电商后台管理系统</span>
  8. </div>
  9. <el-button type="info" @click="logout">退出</el-button>
  10. </el-header>
  11. <!-- 页面主体区域 -->
  12. <el-container>
  13. <!-- 侧边栏 -->
  14. <el-aside width="200px">
  15. <!-- 侧边栏菜单区域 -->
  16. <el-menu
  17. active-text-color="#ffd04b"
  18. background-color="#545c64"
  19. text-color="#fff">
  20. <!-- 一级菜单 -->
  21. <el-submenu index="1">
  22. <!-- 一级菜单模板区域 -->
  23. <template #title>
  24. <el-icon><location /></el-icon>
  25. <span>导航一</span>
  26. </template>
  27. <!-- 二级菜单 -->
  28. <el-menu-item index="1-4-1">
  29. <template #title>
  30. <el-icon><document /></el-icon>
  31. <span>导航二</span>
  32. </template>
  33. </el-menu-item>
  34. </el-submenu>
  35. </el-menu>
  36. </el-aside>
  37. <!-- 右侧内容主体区域 -->
  38. <el-main>Main</el-main>
  39. </el-container>
  40. </el-container>
  41. </template>
  42. <script>
  43. export default {
  44. methods: {
  45. logout () {
  46. window.sessionStorage.clear()
  47. this.$router.push('/login')
  48. }
  49. }
  50. }
  51. </script>
  52. <style lang="less" scoped>
  53. .home_container {
  54. height: 100%;
  55. }
  56. .el-header {
  57. background-color: #363d40;
  58. // 给头部设置一下弹性布局
  59. display: flex;
  60. // 让它贴标左右对齐
  61. justify-content: space-between;
  62. // 清空图片左侧padding
  63. padding-left: 0;
  64. // 按钮居中
  65. align-items: center;
  66. // 文本颜色
  67. color: #fff;
  68. // 设置文本字体大小
  69. font-size: 20px;
  70. // 嵌套
  71. > div {
  72. // 弹性布局
  73. display: flex;
  74. // 纵向上居中对齐
  75. align-items: center;
  76. // 给文本和图片添加间距,使用类选择器
  77. span {
  78. margin-left: 15px;
  79. }
  80. }
  81. }
  82. .el-aside {
  83. background-color: #313743;
  84. }
  85. .el-main {
  86. background-color: #e9edf1;
  87. }
  88. </style>

7. element.js 代码

  1. import {
  2. ElButton,
  3. ElForm,
  4. ElFormItem,
  5. ElInput,
  6. ElRow,
  7. ElMessage,
  8. ElContainer,
  9. ElHeader,
  10. ElAside,
  11. ElMain,
  12. ElMenu,
  13. ElSubmenu,
  14. ElMenuItem,
  15. ElIcon
  16. } from 'element-plus'
  17. import {
  18. Location,
  19. Menu as IconMenu
  20. } from '@element-plus/icons'
  21. export default (app) => {
  22. app.use(ElButton)
  23. app.use(ElForm)
  24. app.use(ElFormItem)
  25. app.use(ElInput)
  26. app.use(ElRow)
  27. app.use(ElContainer)
  28. app.use(ElHeader)
  29. app.use(ElAside)
  30. app.use(ElMain)
  31. app.use(ElMenu)
  32. app.use(ElSubmenu)
  33. app.use(ElMenuItem)
  34. app.use(ElIcon)
  35. app.component('location', Location)
  36. app.component('iconMenu', IconMenu)
  37. app.config.globalProperties.$message = ElMessage
  38. }

以上出自:

【黑马程序员】前端开发之Vue项目实战_Element-UI【配套源码+笔记】_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1x64y1S7S7?p=32

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/542609
推荐阅读
相关标签
  

闽ICP备14008679号