vue-element-admin项目核心总结
1、搭建项目
按照官方文档把整个项目下载下来,安装依赖包npm install, 然后npm run dev 启动项目。
2、项目自定义优化
删除不要的文件,启动项目登录后,发现里面有很多页面,对我们不需要的页面文件和自定义组件进行删除,同步删除路由下的配置。
3、全局配置调整
修改.env.development(开发环境)下的IP地址,以便对utils/request.js中axios.js设置全局请求地址。并且配置axios的interceptors发送请求之前token等请求头信息,也可以设置请求响应的拦截,对状态码做统一处理,最后export出axios配置对象server,在main.js页面引入赋值给vue.prototype.$axios(个人用惯了$axios这种写法)。
因为个人不太喜欢编译时eslint提示的错误,可以找到 vue.config.js 文件。 进行如下设置 lintOnSave: false 就ok了。
4、登录页调整
按设计修改页面结构和样式,添加粒子背景,使用了一款插件https://www.cnblogs.com/styleFeng/articles/12782514.html 给个父节点,子绝父相就搞定了。为了美观背景弄了个3D旋转的地球,这里使用的是Three.js很简单的一个效果
this.camera = new THREE.PerspectiveCamera(60, 300 / 300, 1, 1000);
this.camera.position.z = 600;
this.scene = new THREE.Scene();
this.scene.background = new THREE.Color( 0x182a64 ); this.group = new THREE.Group();
this.scene.add( this.group ); // earth var loader = new THREE.TextureLoader();
var textureNormal = new THREE.TextureLoader().load(this.img);
loader.load( this.img, ( texture )=> { var geometry = new THREE.SphereGeometry( 300, 80, 80 ); var material = new THREE.MeshLambertMaterial({
map: texture,
normalMap: textureNormal ,
normalScale: new THREE.Vector2(100, 100),
});
var mesh = new THREE.Mesh( geometry, material );
this.group.add( mesh ); } ); //点光源
var point = new THREE.PointLight(0x666666);
point.position.set(1000, -1200, 1000); //点光源位置
this.group.add(point); //点光源添加到场景中
//环境光
var ambient = new THREE.AmbientLight(0xe0e0e0);
this.group.add(ambient); this.renderer = new THREE.WebGLRenderer({antialias: true});
// this.renderer.setPixelRatio( window.devicePixelRatio );
this.renderer.setSize( 300, 300 );
container.appendChild( this.renderer.domElement );
5、登录--鉴权
登录逻辑处理。点击登录执行 store.dispatch 把登录逻辑交给action异步处理把账号密码经过base64 btoa加密请求后端,返回token并且把返回的数据resolve出去然后进行路由跳转,在路由跳转请做请求拦截,获取个人信息,store.dispatch('user/getInfo')全局管理设置个人信息,并把权限规则信息resolve()出去,在拦截器中接收,在对权限信息进行全局store.dispatch('permission/generateRoutes', roles)处理,匹配我们自定义的权限字段,进行管理存储,并把路由规则导出去,进行router.addRoutes(accessRoutes)鉴权。
6、路由配置
如果不做权限这把路由配置写到constantRoutes就行了,如果做权限划分,就把需要做鉴权的部分写到asyncRoutes中,对meta下的roles数组进行权限字段分配(注意项目代码的写法是想要给子路由配置权限,那父路由也要有相应的权限)。
7、自定义组件
在components文件夹中新建自定义组件文件夹,里面新建.vue文件作为组件,然后再页面中引入组件并挂载,然后组件名当做标签名直接使用。
用后的结论就是,登录--全局管理--鉴权 是核心,搞懂了就没有啥了,开箱即用哈哈哈。
结束
vue-element-admin项目核心总结的更多相关文章
- 在Vue&Element前端项目中,使用FastReport + pdf.js生成并展示自定义报表
在我的<FastReport报表随笔>介绍过各种FastReport的报表设计和使用,FastReport报表可以弹性的独立设计格式,并可以在Asp.net网站上.Winform端上使用, ...
- 在Vue&Element前端项目中,对于字典列表的显示处理
在很多项目开发中,我们为了使用方便,一般都会封装一些自定义组件来简化界面的显示处理,例如参照字典的下拉列表显示,是我们项目中经常用到的功能之一,本篇随笔介绍在Vue&Element前端项目中如 ...
- Vue + Element UI项目初始化
1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...
- 基于electron+vue+element构建项目模板之【改造项目篇】
1.概述 开发平台OS:windows 开发平台IDE:vs code 上一篇中已完成了electron-vue项目的创建,本篇章中则介绍在此项目基础上进行取消devtools的安装.项目结构的改造. ...
- 基于electron+vue+element构建项目模板之【创建项目篇】
1.概述 electron:使用javascript.css.html构建跨平台的桌面应用程序 vue:数据驱动视图中的一款渐进式的javascript框架 element:基于vue的桌面端UI组件 ...
- vue + element + 初始化项目
前提:已经安装了好了npm 和 vue脚手架 注意: 进入想要放置项目的目录下. 1.vue init webpack sun-vue-element 2.根据提示输入 y/n 3.npm run d ...
- 【vue】vue +element 搭建项目,mock模拟数据(纯干货)
1.安装mockjs依赖 (c)npm install mockjs --save-dev 2.安装axios(Ajax) (c)npm install --save axios 3.项目目录 4.设 ...
- 【vue】vue +element 搭建项目,vuex中的store使用
概述: 每一个 Vuex 应用的核心就是 store(仓库).“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state).Vuex 和单纯的全局对象有以下两点不同: Vuex 的 ...
- vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式
不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p> ...
- vue element Admin - 修改浏览器标签名 + 添加tagView标签 +固定导航头部 + 添加侧边栏Logo
1 .修改浏览器标签名称: 修改浏览器标签名称在文件:\src\settings.js image.png 2 .修改固定头部Header和侧边栏 Logo: image.png 1)侧边栏文 ...
随机推荐
- json套娃其实是这样套的!
- LeetCode 041 First Missing Positive
题目要求:First Missing Positive Given an unsorted integer array, find the first missing positive integer ...
- 自动化运维工具之Puppet常用资源(二)
前文我们了解了部分puppet的资源的使用,以及资源和资源的依赖关系的定义,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14071459.html:今天我们继 ...
- 新手上路A4——多JDK环境变量的配置
目录 配置单个JDK的方法 配置2+JDK的方法 方法 补充 检查JDK版本是否切换成功 前面讲了如何选择Java版本. 以及JDK8和JDK11的下载安装配置 有想法的人就开始发动他们优秀的小脑袋瓜 ...
- Java面试专题-集合篇(2)
- 在 Windows 中使用 C# 启动其他程序
因为某些原因需要自动启动一个 Winform 程序,可能是因为第三方资源的原因,使用 System.Diagnostics.Process 无法成功启动 (可以看到界面,但是会报 Unhandled ...
- MySQL——事务ACID&隔离级别
数据库事务ACID&隔离级别 什么是事务 事务是用户定义的一个数据库操作序列.这些操作要么全执行,要么全不执行,是一个不可分割的工作单元.在关系型数据库中,事务可以是一条SQL语句,也可以是一 ...
- centos7中安装redis出现的问题
重现步骤: 1.解压redis包后 执行make命令.出现一堆东西,其中有gcc:命令未找到. 解决:安装 yum install gcc-c++(需要有网) 2.安装完gcc命令后,再make.出现 ...
- PyQt(Python+Qt)学习随笔:QScrollArea为什么不起作用未出现滚动条?
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 老猿在进行Scroll Area部件测试时,在下面的窗体中放置了一个Scroll Area部件,在部 ...
- PyQt学习随笔:Qt中Model/View中的Model Index
Qt中Model/View中的Model Index是一个类,该类用于定位Model/View中数据模型中的数据. Model Index是从QAbstractItemModel派生的子类,用于在项视 ...