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)侧边栏文 ...
随机推荐
- CentOS初级扫盲
发行版介绍 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口Portable Operating System Interface ,缩写为 POSIX ...
- Codeforces Educational Round 94 (Rated for Div. 2)
昨晚算是不幸中的万幸了 A题问的是给2n-1个01串,让你构造出来一个n串使得从1开始每个长度为n的串都至少存在有一个相似的地方 这道题我一开始没什么想法,但是手动观察发现每次可以留出来的空挡间隔为1 ...
- 第8.2节 Python类的__init__方法深入剖析:构造方法案例详解
前面一节介绍了构造方法定义的语法,并进行了语法解释说明,本节将通过案例来说明构造方法参数传递及返回值的情况. 一. 案例说明 本节定义一个汽车类,它有四个实例变量:wheelcount, pow ...
- 第8.18节 Python类中内置析构方法__del__
一. 引言 基本上所有支持OOP设计的语言都支持析构方法(也称析构函数),析构方法都是在对象生命周期结束时调用,一般用来实施实例相关生命周期内访问数据的扫尾工作,包括关闭文件.释放内存.输出日志.清理 ...
- 第8.17节 Python __repr__方法和__str__方法、内置函数repr和str的异同点对比剖析
一. 引言 记得刚开始学习Python学习字符串相关内容的时候,查了很多资料,也做了些测试,对repr和str这两个函数的返回值老猿一直没有真正理解,因为测试发现这两个函数基本上输出时一样的.到现在老 ...
- 老猿Python重难点知识博文汇总
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 除了相关教程外,老猿在学习过程中还写了大量的学习随笔,内容比较杂,文章内容也参差不齐,为了方便,老猿 ...
- 第10.9节 Python子包的导入方式介绍
在<第10.8节 Python包的导入方式详解>详细介绍了包的导入方式,子包也是包,子包的导入与包的导入方法上没有本质区别,但二者还是有所不同.本节对照二者的方式介绍子包与包导入的关系: ...
- 第15.24节 PyQt(Python+Qt)入门学习:Model/View架构中QTableView的作用及属性详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Designer的部件栏Item Views中提供了PyQt和Qt已经实现好的table ...
- PyQt(Python+Qt)学习随笔:QTreeView树形视图的indentation属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的indentation属性用于控制视图中每级数据项之间的缩进,对于顶级项 ...
- PyQt(Python+Qt)学习随笔:clicked和clicked(bool)信号连接同名函数出现的问题
在Qt中,控件中的clicked()信号和clicked(bool)信号是两个不同的信号,映射槽函数时,clicked()信号映射到的槽函数是不带参的,clicked(bool)信号映射到的槽函数是带 ...