专栏名称: AndoirdBlogCN
[ Android Blog 周刊 ]每周一准时更新,主要包括本周最新的优秀国内外博客,新闻,类库,视频等 [www.androidblog.cn ] [ QQ群:149581646 ]
目录
相关文章推荐
复利大王  ·  冷暴力女王,翻车了 ·  1小时前  
复利大王  ·  00后新观念!与男朋友保持非婚姻长期关系 ·  1小时前  
郭霖  ·  Android ... ·  3 天前  
复利大王  ·  美女硕士被妈妈的驭男术坑了 ·  3 天前  
51好读  ›  专栏  ›  AndoirdBlogCN

摩拜单车微信小程序开发技术总结

AndoirdBlogCN  · 公众号  · android  · 2017-01-18 07:59

正文

请到「今天看啥」查看全文


onLoad 事件,可以用 onReady 替代。

事件广播

“单页面结构”的微信小程序,你可以使用事件广播(统一的事件中心)来注册和触发自定义事件,否则到后期事件管理会越来越乱,而且涉及跨页面传输事件,你更需要这种事件触发机制,可以参考 broadcast.js 。比如在摩拜单车中有这样的场景:

扫码成功后在开锁页面A提示开锁成功,要跳转到骑行页面B并查询用户骑行状态。

如果没有统一的事件管理中心,你几乎无法完成这样的过程,当然,可以使用Hack的方式解决。因为跳转到页面B会触发B的 onShow 事件,所以可以在 onShow 中写业务逻辑:



但更合理的应该是利用事件广播来处理:


数据中心

根目录的 app.js 很有用,根目录的 app.js 很有用,根目录的 app.js 很有用。
因为在它内部注册的变量或方法,都是可以被所有页面获取到,所以利用它也可以处理上面所述的跨页面事件触发问题。而且可以注册
globalData 供所有页面取用,例如可以把 systemInfo 直接注册到 globalData 中,这样就不用在每个页面都获取一遍:



在页面获取:



性能优化

小程序运行在微信平台,而且可能和众多小程序“共享运行内存”,可想而知,单个小程序的性能极可能遇到瓶颈而Crash或被微信主动销毁!

比如在摩拜单车有这个场景:

首页展示地图找车,扫码成功后跳转到骑行地图。

简单的逻辑,直接两个页面,两个 map 组件切换就可以搞定。实际测试场景中,iOS的确如预期,一切正常,但是在Android下,就很有可能会使得小程序Crash,扫码成功后直接退出了小程序。

解决办法就是, 整个小程序只维护一个 map 组件 ,通过不同的 State 来改变map的不同展现:


这样就成功解决了部分Android设备小程序Crash的问题。



------------------------------  End  ------------ --------------------








请到「今天看啥」查看全文