序言
iVX是一个高度灵活的应用开发工具,实现同一个功能,有各种不同的实现方法。为了提高项目在一个团队内部的可读性与可维护性,并确保项目运行时的性能,我们总结了30+个移动端项目,提出了一套最佳实践方案,帮助大家以最优化的结构开始搭建项目。
一、 框架
一个项目的推荐架构,详见视频:框架说明
项目框架的核心要点如下:
1.使用页面作为项目构成的基本单元,即每个独立的UI场景构成一个页面。注意,尽管使用if条件容器也可以实现UI场景的切换,但为了能够让项目结构更加清晰,我们还是推荐使用页面作为基本场景容器,而if条件容器,可用于页面内小部分UI内容切换。
2. 页面内的核心UI模块,即负责承载内容的顶层组件与小模块,不超过7个,否则,使用小模块来对UI模块进行封装。比如,可将多个输入组件合并成一个多属性的输入小模块。减少顶层UI模块的数量,有助于每个页面的结构更容易理解与维护,让页面结构“一目了然”。
3. UI模块之间的交互,使用逻辑处理器(即动作组)进行封装。逻辑处理器的包括页面内逻辑处理器,以及跨页逻辑处理器,我们使用以下命名规则对逻辑处理器进行命名:
a) 页面内逻辑器:【前】A->B/C 切换详情,其中:
- 1) 【前】/【后】代表该逻辑处理器是否仅涉及前端逻辑,或涉及到后台数据(包括后台服务,api以及socket连接);
- 2) A代表触发逻辑处理器的UI模块,B与C代表对逻辑处理器做出响应的UI模块,即逻辑处理过程中涉及的目标对象;
- 3) “获取详情”,代表该逻辑处理器的功能简介。
b)跨页逻辑处理器:【后】A页->B页提交成功跳转,其中:
- 1) 【前】/【后】代表该逻辑处理器是否仅涉及前端逻辑,或涉及到后台数据(包括后台服务,api以及socket连接);
- 2) A页代表发起逻辑处理器的UI模块所在页面,B页代表逻辑处理完毕后跳转至的页面;
- 3) “提交成功跳转”,代表该页面跳转的功能简介。
4. 尽量将前端状态变量封装至小模块中,减少全局变量与页面级变量的使用。通常情况下,仅以下几种类型的数据或变量,我们建议以全局或页面变量的形式进行存储,而不是存储在小模块的属性中。
- 1) 全案例通用的数据,比如当前用户信息,当前系统时间等,以及案例通用的静态配置字典,比如状态-颜色字典等,才作为全局数据变量进行存储。
- 2) 页面内UI