小程序项目总结
在开发项目的时候,由于不会使用小程序组件功能,因此导致很多重复代码,所以,后期应当强化公共组件的封装与学习,以避免代码重复复制粘贴;
总体思路总结如下:
1 获取用户输入的内容,尽量用bindinput ,验证的时候最好使用bindblur;
2 数据分页加载的功能,其实是声名一个空数组,这个空数组carlist就是页面的数据列表,每次请求到的数据,利用数组的concat() 方式将新请求到的数据跟之前的数组链接起来,形成分页加载的效果,如果请求的数据是空,则显示到底了,如果第一次请求数据就是空,则显示时暂无数据; 这样不以依据默认的carlist.length==0来显示暂无数据图片造成的闪现;
3 页面的各种请求可以放到onShow 中,这样的话可以从返回上一个页面时,上一个页面的数据进行重新加载,以便于获取最新的数据; 可以避免很多必须使wx.getCurrentPage;
4 如果可以的话,每个页面中的data 数据,尽量使用对象的方式,这样可以用一个变量挂在很多了属性值,否做data中的变量特别多,后期看着都发蒙,不知道变量是干嘛的;
5 把JS功能封装成单独的模块,不要再放在同一个common中了,找的时候也不好找;
6 开发的过程中,先理顺整个业务流程,根据业务流程开发,比如此次开发中,首先要先搞定发布寻车----下单-这个最核心的业务,因为核心业务不仅仅涉及个人,还关系到测试方面,甚至其他人的进度工作;
7公共样式该封装的封装,但是吧,别搞得最后自己都忘记了是哪个就行
8能用一个页面的 ,尽量整合成一个页面,尤其是详情页;
9代码上线前,一定要审核是否有相关的重要代码被注销了,否在带来的后果是不堪设想的.
10首先要想到的并且加入到项目的首要功能是版本更新机制,比如小程序的版本更新机制,原因:可能因为版本不及时更新导致很多不良后果;另外版本号要在上线项目中表明,以便于进行区分工作;
11一定要有一个版本,保证核心业务流程能够不受影响的正常使用;
12一定要核对传递的参数值,很有可能前面的都做对了,结果最后传递至出错了
13每次修改一个内容,都要看一下是否把原本没问题的流程影响了,导致bug
====================================================
14 所有的数据下载或上传的时候,预加载效果不仅仅是个样式,也是保证每次的数据能够有时间上传或者下载的过程;
15 所有的按钮,尤其是提交类型的按钮,最好都要进行单击次数的限制,目的是为了避免数据的重复提交,在交易网站中的目的是避免重复下单;
16 每次上线之前都要依据清单革命的要求来进行逐一核对,避免小问题导致的系统无法正常运转;
17 核心节点最好不要注销,如果提交数据,可以断开网络进行查看传参;避免后期忘记,上线后因被注销导致无法正常运转;
18 不管是移动端还是pc端,验证的时候一定要考虑到数据是复制粘贴过来的情况;
19 阻止按钮重复单击的思路: A利用disable来限制;B设置一个标记,比如flag初始值是true;单击按钮先上去改变flag为false,用来阻止按钮被二次单击;发送数据请求成功时,flag仍然是false,表示请求成功后不能单击;如果请求失败或者出现错误时,将flag更改为true,确保按钮可以单击;另外还要注意由此涉及到的其他判断逻辑和函数中如果需要flag变为true,应当及时更改;还有很多都是业务核心环节,所以一定要确保flag值得准确及时变更,避免因flag值得变更错误导致业务流程彻底瘫痪;
20 项目经理要提前提出需求,并确定计划上线时间,给开发留出预估时间,当然开发要尽量根据项目经理的计划来规划自己的排期,尽量提前,比如小程序审核需要时间而且时效不固定,因此要做好充足的风险评估;
21 开发人员要对风险进行评估并且跟测试说明测试的优先级别,确保自己的风险控制在最小;
22开发人员可以根据项目需求以及bug的优先级尽量提前处理,确保测试以及审核上线等留出做够的时间,尽量提前给测试;对于风险控制,自己要预估测试或审核时间,在保证质量的情况下,比如可以给小程序预留1-3个工作日进行审核,当然这个也需要跟项目经理的上线时间进行协商,但更重要的是自己的效率;
23 确保gitLab 中的代码与最新项目版本能够有一套完全相同的,同时也要预估好线上项目突发机制: 比如风险警告群;另外确保项目再gitLab 中有各个历史版本,确保项目如果有突发风险,可以及时利用上一个版本进行替换,不至于导致项目无法使用;但是最好是检查好,不要出现突发情况;
24对于已经加载到底的图标,由于图片和文字两边各有一个”---------”,可以用两个空盒子,然后设置border-top的方式形成两边的横线
25类似于页面数据空空如也之类的体验图片,不允许给固定定位,或者直接相对于页面固定定位,需要给页面的中对应的容器,进行定位;
26小程序阻止按钮被双击重复下单的方法:
1 利用预加载将整个页面罩层罩住,这样可以避免被重复出发,体验也比较好;
2 利用布尔值控制视图层页面的函数是否被绑定,如果单击一次后通过改变布尔值,将绑定的函数去掉,这样可以避免重复单击,但效果不是特别好;
3 同样利用布尔值,比如stopRepeatBtn:true; 单击事件后:that.setData({stopRepeatBtn:false;});将布尔值改变为false;然后通过判断if(!stopRepeatBtn){return false;};
27.所有项目,尽量将判断(比如是否符合身份证正则等)添加在触发事件上,如果每一个输入框都加一个判断的话,不仅代码比较乱比较复杂,效果也不太好;
28.一般的在列表样式的数据请求中,都要加入一句:if(page==1){that.setData({list:[]}};然后再追加数据,目的是防止因为网络加载问题,单击了两次tab切换,导致回来的数据重复;