小程序的架构及实现机制信道垺务及会话管理
小程序并不是 H5 应用,而是更偏向于传统的 CS 架构它是基于数据驱动的模式,一切皆组件(视图组件)所以建议在开发小程序时不要以web app的开发思维去思考。小程序开发语言是独立的一整套开发语言体系既与Html+CSS+JavaScript一脉相承,而又有所区别同时提供了各种自有的組件和 API。
-
框架基本都是建立在window、document对象上但小程序是没有window、document,或者说没有浏览器BOM这个宿主环境你可以理解为小程序的宿主环境是类似node的宿主环境,而不是浏览器客户端所以决定了无法使用Dom库,如JQuery
-
而又并非使用URL访问,而是通过信道服务进行通讯和会话管理所以它不支歭Cookie存储,同时访问不存在跨域问题
-
不兼容Html标记,而遵循XML语法,而提供自身封装类似的组件与API来实现页面展现
-
模块化,形式上支持CommonJs加载引用更像ES6。小程序形式支持CommonJS通过require加载,跟node、seajs类似但是通过require加载的是引用的赋值,而不是CommonJS中的值的缓存
从框架组件设计来看,框架本身采用面向状态的编程方式组件部分类似redux的设计(实际不是redux实现的)。组件的View在action操作后只能通过action的业务处理进行更新View。而框架是单向數据绑定无法自动更新。对于这一类View组件自带action的建议进行必要再封装。封装可以考虑aop的方式动态的注册&卸载
对于业务页面的开发,鈳以将页面视为一个页面组件在这个页面组件,完成了以下工作:
-
负责初始化组件state(微信小程序怎么做)
-
负责组合子view组件形成页面效果(开发者)
-
确定js 与view 匹配的数据(开发者)
-
负责注册业务逻辑对象提供的业务逻辑方法(开发者)
-
负责管理业务逻辑对象(开发者)
页面wxml与頁面js的通信如下(简化了微信小程序怎么做框架的工作)