Vue项目学习(2)
Vue项目实战(2)
6.侧边栏完善
1.二级菜单完善
<el-submenu v-for="item in hasChildren" :index="item.label" :key="item.label"><template slot="title"><i :class="'el-icon-'+item.icon"></i><span slot="title">{{ item.label }}</span></template><el-menu-item v-for="subItem in item.children" :index="subItem.path" :key="subItem"><i :class="'el-icon-'+subItem.icon"></i><span slot="title">{{ subItem.label }}</span></el-menu-item></el-submenu>
2.调整样式 CommonAside.vue
<template><el-menu background-color="#ffffff" text-color="#303133" active-text-color="#409eff" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose" :collapse="isCollapse"><h3>管理系统</h3><el-menu-item v-for="item in noChildren" :index="item.path" :key="item.path"><i :class='"el-icon-" + item.icon'></i><span slot="title">{{ item.label }}</span></el-menu-item><el-submenu v-for="item in hasChildren" :index="item.label" :key="item.label"><template slot="title"><i :class="'el-icon-'+item.icon"></i><span slot="title">{{ item.label }}</span></template><el-menu-item v-for="subItem in item.children" :index="subItem.path" :key="subItem"><i :class="'el-icon-'+subItem.icon"></i><span slot="title">{{ subItem.label }}</span></el-menu-item></el-submenu></el-menu>
</template>
.el-menu-vertical-demo:not(.el-menu--collapse) {width: 200px;min-height: 400px;
}h3{text-align: center;line-height: 45px;
}
.el-menu {height: 100%;
}
3.修改App.vue样式
<style>
html, body {margin: 0;padding: 0;
}
#app {height: 100vh;
}
</style>
效果
7.router重构
1.改写router/index.js
import Vue from 'vue'
import VueRouter from "vue-router";
import Main from "../views/Main";
import home from "../views/home"
import user from "../views/user"Vue.use(VueRouter)const routes = [{path: '/',name: 'Main',component: Main,children: [{path: '/home',name: 'home',component: home},{path: '/user',name: 'user',component: user}]}
]const router = new VueRouter({mode: 'history',routes
})
export default router
2.改写views下结构
3.Main.vue
<template><el-container style="height: 100%"><el-aside width="auto"><common-aside></common-aside></el-aside><el-container><el-header>Header</el-header><el-main><router-view></router-view></el-main></el-container></el-container>
</template><script>
import CommonAside from "../src/components/CommonAside";
export default {name: "Main",components: {CommonAside}
}
</script><style lang="less" scoped>.el-header {background-color: black;}.el-main {padding-top: 0;}
</style>
4.CommonAside.vue路由跳转事件
<el-menu-item @click="clickMenu(item)" v-for="item in noChildren" :index="item.path" :key="item.path"><i :class='"el-icon-" + item.icon'></i><span slot="title">{{ item.label }}</span></el-menu-item>
...methods: {clickMenu(item) {this.$router.push({name:item.name})}},...
8.头部导航栏
1.引入资源文件asset,包含一些基本样式与图片
2.编写头部导航栏组件CommonHeader.vue
<template>
<header><div class="l-content"><el-button type="mini" icon="el-icon-menu"></el-button></div>
<div class="r-content"><el-dropdown trigger="click"><span class="el-dropdown-link"><div class="avatar"><el-avatar :size="40" :src="circleUrl"></el-avatar></div></span><el-dropdown-menu slot="dropdown" ><el-dropdown-item>个人中心</el-dropdown-item><el-dropdown-item>退出</el-dropdown-item></el-dropdown-menu></el-dropdown></div>
</header>
</template><script>
export default {name: "CommonHeader",data () {return {circleUrl: require("../../assets/images/user.png")}}
}
</script><style lang="less" scoped>
header {display: flex;height: 100%;justify-content: space-between;align-items: center;
}
.r-content {display: flex;align-items: center;margin-top: 5px;
}
.el-dropdown-link {cursor: pointer;color: #409EFF;
}
.el-icon-arrow-down {font-size: 12px;
}
.demonstration {display: block;color: #8492a6;margin-bottom: 20px;
}
</style>
3.在Main.vue引入
效果展示
9.Vuex状态管理
用于组件间进行通信
1.导入vuex
2.根目录新建store文件夹,在store下新建index.js
import Vue from "vue";
import Vuex from "vuex"Vue.use(Vuex)export default new Vuex.Store({modules: {}
})
3.在main.js引入store
10.状态管理侧边栏的开合collapse
1.在store新建tap.js
export default {state: {isCollapse: true},mutations: {collapseMenu(state) {state.isCollapse = ! state.isCollapse}}
}
2.store/index.js引入
import Vue from "vue";
import Vuex from "vuex"
import tab from "./tab";
Vue.use(Vuex)export default new Vuex.Store({modules: {tab}
})
3.CommonAside.vue根据store.tap.state.isCollapse渲染
computed: {...isCollapse() {return this.$store.state.tap.isCollapse}...}
4.CommonHeader.vue增加按钮的响应事件
methods: {collapseMenu() {this.$store.commit("collapseMenu")}}
Vue项目学习(2)相关推荐
- VUE项目学习(三):win10版nginx部署vue项目
VUE项目学习(三):win10版nginx部署vue项目 niginx的安装和启停操作参照博客:https://blog.csdn.net/qq_26666947/article/details/1 ...
- VUE项目学习系列博文
VUE项目学习系列博文 1.VUE2.0项目学习 (1)VUE项目学习(一):搭建VUE前端项目 (2)VUE项目学习(二):学习项目文件结构 (3)VUE项目学习(三):win10版nginx部署v ...
- VUE项目学习(二):学习项目文件结构
VUE项目学习(二):学习项目文件结构 VUE项目结构: index.html:主页,项目入口 App.vue:根组件 main.js:入口文件 router文件夹下的index.js:路由配置文件 ...
- VUE项目学习(一):搭建VUE前端项目
VUE项目学习(一):搭建VUE前端项目 1.安装node.js环境 (1)下载node.js,下载地址为:https://nodejs.org/en/ (2)按照默认选项安装node,检查安装版本 ...
- VUE项目学习(四):编写个人页面和配置路由
VUE项目学习(四):编写个人页面和配置路由 1.准备工作,下载vue项目 先配置好node.js开发环境,并使用VUE-Cli下载好VUE项目,具体流程可以参考博客https://blog.csdn ...
- Spring Boot+Vue项目学习总结
介绍 最近要做一个网站项目,前后端都用什么开发好呢?什么火就用什么呗,后端Spring Boot火,就用Spring Boot:而前端Vue.js很好的实现了前后端分离,多么高大上,就用Vue了.可问 ...
- 【springboot+vue项目学习】3引入element-ui插件
element-ui官网https://element.eleme.cn/ 输入命令 npm i element-ui -S 出现安装失败提示 解决方案一 cnpm install element-u ...
- pycharm创建vue项目
pycharm创建vue项目 学习vue 需要下载node.js 链接: node.js 安装淘宝npm镜像 命令行输入: npm install -g cnpm --registry=https:/ ...
- vue项目打包与配置-学习笔记
文章目录 vue项目打包与配置-学习笔记 前端打包 打包的代码如何运行 打包指定不同的环境变量(开发,测试) 打包手动配置文件 打包压缩,大文件处理 gzip进一步压缩 打包app 打包部署模式 vu ...
最新文章
- 改名之后的Java EE,现在有什么新进展?
- Java修改文件夹下所有文件名
- html如何将段落对齐,如何用CSS设置段落的垂直对齐(附代码)
- 宣布EAXY:在Java中简化XML
- python的实例属性和静态属性_Python面向对象之静态属性、类方法与静态方法分析...
- 三星鸿蒙手机,被忽视的对手:三星的自研系统,已全球第一,成华为鸿蒙对手...
- JUC:ConcurrentHashMap(并发容器)
- Hey! 首先祝贺 SpaceX 发射成功,其次我黑了 NASA 某IT 承包商网络哟~
- java解析md文件_md格式详解
- VS Code 创建HTML页面教程
- 微信跳一跳小游戏源码
- 三代测序数据分析实战
- GPU技术支持-基础篇-包管理工具
- python高级教程-2
- #五、再一种正方:2
- 企立方:拼多多开店能不能赚钱
- linux查找目录中指定文件或遍历指定文件夹
- 低功耗蓝牙开发技术概述(三)——主机
- php上传图片并修改文件名
- 一个简单的后台管理系统
热门文章
- 女生学计算机真的难吗,女生想学计算机科学与技术,怕很难学懂,这门学科是不是特别难?女生学到底好不好?...
- 1. Java之父是谁?java哪年推出的?
- 【Git从青铜到王者】第二篇:Git的初始
- Java数据库项目之满汉楼
- windows开机自动进bios 常见的问题
- java velocity js_一统江湖的大前端(8)- velocity.js 运动的姿势(上)
- android中实现ImageView中显示视频的略缩图
- 国内五款主流外贸CRM优缺点综合评测
- 光脚丫学LINQ(017):跨关系查询(C#):手动编码
- 李开复创新工厂超级详细面经(附答案)