开发相关的技术栈
- vuejs2.0:一套构建用户界面的渐进式框架,易用、灵活、高效
- element-ui:一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的组件库
- vue-router:官方的路由组件,配合vue.js创建单页应用(SPA)非常简单
- axios: 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用
- scass
构建项目框架
使用vue-cli脚手架搭建项目
|
|
项目运行后看到以下界面,恭喜你,项目环境搭建成功!
项目结构及新建的基础页面
项目结构
|
|
创建基础页面
首先需要先简单创建几个基本页面方便接下来展示。
home.vue
|
|
其他页面就省略了,创建占位。目录截图如下:
目录明细:
src/components/
- logine ——————– 登录页
- home ——————–首页
- menu ——————– 菜单管理页
- permission ——————– 权限管理页
- role ——————– 角色管理页
- uesr ——————– 用户管理页
- organiz ———————— 机构管理页
- inte-setting ———————— 综合设置页
配置及安装依赖
在package.json中配置所需的依赖
|
|
这里简单说明下babel-polyfill
,它是对ES6的API做转义。有兴趣的同学可以查阅其他资料。
安装依赖
|
|
引入element-ui
在app.vue引入element-ui,然后就可以在其他任何页面中使用了
|
|
设置路径别名
设置路径别名,以减少开发过程中路径的复杂性,比如../../
这类路径。
修改webpack.base.conf.js
|
|
配置router
在router/index.js配置routers
|
|
编写home.vue组件
使用element-ui2.0的Container布局容器,方便快速搭建页面的基本结构。
先上components/home.vue的代码及效果图:
|
|
运行项目展示页面如下:
代码分析:
接下来依次分析home.vue的代码。
动态配置菜单
使用菜单组件<el-menu>
,:default-active="0"
设置当前激活菜单的index
,设置为router
模式会在激活导航时以 index
作为 path
进行路由跳转
|
|
接着使用$router.options.routes
来遍历生成侧边导航栏,v-if
将登录的路径隐藏。在菜单中通过submenu
组件可以生成二级菜单
|
|
分组名可以通过title
属性直接设定进行solt
分发菜单
|
|
用item.name
和item.children.name
来配置菜单栏和子菜单栏的名称。$route.path
表示当前路由对象的路径
|
|
最后,如上图路由菜单展示,完美~!
导航菜单折叠功能
首先在data中创建是否折叠collapsed
属性,默认值为false
。写个collapse()
方法以此来控制菜单是否折叠。
|
|
分别在header和aside组件上设置collapsed
来控制菜单折叠
|
|