1. 简单的说一下Git的工作流
简单的说一下我在工作中的git工作流
-
master:主分支
-
develop:主开发分⽀。包含确定即将发布的代码
-
feature:新功能分⽀。⼀个新功能对应⼀个分⽀
-
release:发布分⽀。发布时⽤的分⽀,⼀般测试阶段发现的 bug 在这个分⽀进⾏修复
-
hotfix:热补丁分支。用于修改在线上版本中发现的严重紧急 bug
① 拿到项目之后, 所有的开发人员都会被拉到一个开发小组; 然后项目小组长对人员进行分配划分模块.
② 小组长把项目分支搭建好(master[项目上线分支]、release [测试分支]、develop[开发分支])
③ 克隆下来, 基于develop分支创建自己的开发模块分支
④ 所有功能开发完毕, 将所有的功能分支合并到develop分支里面, 测试没有问题最后将develop分支合并到master分支里面
⑤ 最后代码上线交给运维
2. 说一下在项目中, 发送ajax是怎么做到的; 你对axios封装过哪些东西
一. 发送ajax如何做到的?
首先我们可以划分为三个模块: 1. utils/request.js 2. api/* 3. xxx.vue.
① 在request.js中封装好axios, 并导出.
② api文件夹下细分多个对应的小模块, 封装发送请求的方法.
③ 在xxx.vue组件里面按需导入, 使用即可.
二. 对axios封装过那些东西?
① 首先创建axios的实例对象, 并命名为request; 设置baseURL和timeout.
② 创建请求拦截器(设置请求头, 判断token值是否还生效).
③ 创建响应拦截器(统一对错误状态进行处理, 对后端返回的数据进行统一的解构, token值失效后所做的处理).
④ transformRequest(表示允许在向服务器发送前,修改请求数据)、transformResponse(在传递给 then/catch 前,允许修改响应数据).
3. 谈谈你平时都用了那些方法对整个项目的性能进行优化
我通常使用的方法有: ① 路由加载 ② 图片懒加载 ③ CND加速 ④ 减少http请求次数 ⑤ 打包压缩上线代码 ⑥ 使用精灵图 ⑦ 动态渲染组件 ⑧ 减少重绘和重排 ⑨ 防抖 ⑩ 事件委托
4. 说说Vue相关的性能优化的手段你都考虑过哪些?
① v-for循环的时候设置key值
② v-for和v-if不要一起使用
③ keep-alive
④ 路由懒加载, 图片懒加载和组件动态加载
⑤ 区分v-if和v-show的使用场景
⑥ computed和方法区分使用场景(优先使用computed)
⑦ UI框架的按需导入
5. 图片懒加载是怎么实现的?
先设置图片的data-set属性
值为其图片路径,由于不是src,所以不会发送http请求。
图片要显示出来了的时候,再将 data-set 属性替换为 src 属性
就是我们先设置图片的data-set属性
(当然也可以是其他任意的,只要不会发送http请求就行了,作用就是为了存取值)值为其图片路径,由于不是src,所以不会发送http请求。 然后我们计算出页面scrollTop的高度和浏览器的高度之和, 如果图片距离页面顶端的坐标Y(相对于整个页面,而不是浏览器窗口)小于前两者之和,就说明图片就要显示出来了(合适的时机,当然也可以是其他情况),这时候我们再将 data-set 属性替换为 src 属性即可。