完成了第二次需求,但是这次需求完成的不好,出了很多岔子,后来产品也一直在催,被diss完了,测试还特别费劲。在此总结一下这次教训。
1、iconfont的使用
首先要去阿里矢量图标库,注册一下信息,用户名是公司规定的用户名格式,不能自己随意起,然后找某某加一下权限,这样你就可以进入我的项目,查看你需要哪些图标。使用的时候也非常简单,复制图标代码,删除前面的&#x符号,只保留后面的e...,然后到你需要添加icon的地方,里面随意设置css属性,包括颜色、大小。
use:after {
font-family: icomoon;
content: "\e616";
margin-left: .08rem;
}
2、base64的使用
如果有一些较小的图片,就没有必要浪费一次请求,直接使用base64,找一个base64转码网址,图片拖进去就行,使用方法如下:
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAAByC")
3、组件优先级
在组件显示中,很可能会出现优先级展示,同样的位置,因为优先级的不同展示的内容也不同,比如这次我的需求,后台返回我的组件信息是可有可无的,如果有则显示我的组件,若没有则显示他人组件。用if……else来判断就ok了(当时我可能脑子抽了,都没往这方面想)。
4、git命令
git pull origin master = git fetch origin master + get merge origin master
每次本地开发完毕后,要先将远程master的更新合到自己的分支,再进行提交。最好保证本地master和远程master一直是同步的。要是将自己分支合到当天的htj里,就切换到htj分支,然后git merge jjj。
merge代码的时候可能会出现冲突,此时要仔细查看冲突内容,保留合适的地方,尤其注意不要随便删除不为自己控制的代码,如果你在本地删除了,后来merge只能merge到最新更新,之前删除的代码无论如何和也merge不到了,不要手闲!!!!
5、getComputedStyle()
该方法课获取该dom元素的所有css属性,返回时css属性为驼峰式写法。
6、charles断点与rewrite
rewrite重写:只有当你请求到了参数,才可以重写,如果该参数可有可无,则无法重写。
Breakingpoint settings:proxy--> Breakingpoint settings-->设置好自己要打点的接口(不要出现任何随机数,单纯接口)-->手机刷页面charles会弹出-->继续按按钮三次,看jsonText可以在里面加response参数。
7、写一个相关需求时要仔细看需求相关的代码,代码看懂后再看接口文档,如果涉及到与代码处相似的参数,要注意这个参数和之前的参数有什么不同,参考这次的subjectId ,虽然请求广告列表的subjectId和请求店铺商品列表的subjectId名字是一样的,但是这两个参数完全是不同的,处在不同的位置,获取它的方式也不一样。可以和后台去讨论,另外灰度问题也是要和后台去讨论的看是由前端还是后台来控制代码。
8、打点
打点的话要和产品去确认需要在什么地方打点,产品会提供给你具体的打点参数,如果一个div既要曝光打点也要点击打点,参考这次的banner,一个打点参数就可以。写个impr属性默认为true。
<Logdiv
className="wrap"
onClick={scrollToGoodsList}
log="111111"
impr
>
9、发版流程
将自己代码本地开发完毕后,本地测试ok了,就将自己的代码合入htj分支,找人帮忙发一下htj环境,若htj环境测试通过了,再找人合到pdd环境测试,若也测试通过了,则合入当天dev分支,等车。注意htj分支与htj环境是两个不同的概念。
10、若意识到某个参数传参错误,则要一层层callback,理清楚这个参数从头至尾都在哪些地方参与了,才能鬼知道哪里出了问题。
11、勤commit,每次commit的信息要写准确,提交记录会变得清晰,后面回滚也可以。
12、每次如果觉得自己的merge会出问题,则可以先备份一下。
13、如果组件涉及到多个状态,最好用redux来管理,不推荐state。