# fed-e-task-03-06
**Repository Path**: learning-summary/fed-e-task-03-06
## Basic Information
- **Project Name**: fed-e-task-03-06
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-03-18
- **Last Updated**: 2021-04-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 1.说说 application/json 和 application/x-www-form-urlencoded 二者之间的区别。
application/x-www-form-urlencoded 是以form data 形式传参 到后端,拼接形式为a=1&2,用qs.stringfy()方法可以默认以urlencoded形式传参,
applicaiton/json 是以json形式传参 {a:1, b: 1}, 需要剑content-type设为applicaiton/json
### 2.说一说在前端这块,角色管理你是如何设计的。
不同用户对应不同角色,不用角色有不同的权限, 先给用户分配角色,然后给角色分配权限就可以了
### 3.@vue/cli 跟 vue-cli 相比,@vue/cli 的优势在哪?
- 提供了Gui可视化工具
- 可选选择vue3的项目
### 4.详细讲一讲生产环境下前端项目的自动化部署的流程
使用gitlab, 然后监听git push或者merger事件,配置url发送post消息,然后jenkins负责接受的post消息,
执行构建脚本命令,然后将构建好的代码通过ssh上传至服务器
### 5.你在开发过程中,遇到过哪些问题,又是怎样解决的?请讲出两点。
- 微信浏览中授权sessionstorage存储丢失
原因:微信授权,会先通过location.href跳转到微信的url的地址,这个过程中相当于重新刷新了页面,sessionStorage重置,
解决方案: 1. 将参数通过redirect_uri传递给微信,微信再跳转回来。2.用localstorage配合vuex持续化存储
- bms后台管理系统首次加载需要40s
原因:通过 npm run build --report命令查看分包大小,发现有app.js以及其他比较大的包很大阻塞了住,整体加载时间过程
解决方案:
1. 通过cdn,将vue、vue-router、vuex、elementui等主包用cdn的形式引入到index.html,配合weback的exteral 属性排除这些包的引入。
2. 加上preload。
3. 然后用splintchunks将那些比较大的包拆分成比较小的包
### 6.针对新技术,你是如何过渡到项目中?
针对比较老的业务,先不动他,新的业务线慢慢引入新技术,徐徐图之,后面慢慢有时间了就将新技术引入到老业务上。