一、目标

1、提升开发速度 2、更好的响应需求变化

二、面临的问题

业务需求的变化是永恒的,而变化势必会引发代码的变化,新增代码或修改代码。

改动的地方越多,引入新的错误几率就越大。

三、应对思路

最小化原则,确保每次业务需求变化可以用最小的代价来完成。

1、视图模板化,组件化

2、逻辑代码对象化、版本化

3、事件传递参数化、代理化

四、架构模型

1、视图

2、逻辑与事件通信

视图层需要传递一组参数(对象名、方法名、方法需要的参数)

五、代码示例

//wxml代码
<view 
bindtap='bindViewEvent' 
data-model="user" 
data-method="sayhello" 
data-text="hi,nihao">sayhello</view>

//js代码,page页里只有一个事件路由业务函数
bindViewEvent:function(e){
    app.excute(this,e);
 }
 
 //app.js 
  /*
  * 事件路由函数
  */
  excute:function(that,e){
    new umitech(that,this.config).extend(e);//动态加载对象,并调用相关方法
  }

github示例代码