A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Android_Robot 于 2017-1-19 11:46 编辑

摩拜单车小程序已于微信小程序上线第一天正式发布,刷爆微博媒体朋友圈。


思维转变
  • 微信小程序没有HTML的常用标签,而是类似React的微信自定义组件,比如view、text、map等
  • 没有window变量,但微信提供了wx全局方法集
  • 没有a标签链接,不可嵌套iframe
  • 事件绑定和条件渲染类似Angular,全部写在WXML中
  • 数据绑定采用Mustache双大括号语法
  • 无法操作DOM,通过改变page data(类似React的state)来改变视图展现

所以如果你熟悉以上提到的所有前端技术栈,开发微信小程序你会得心应手。
生命周期
你可以理解小程序就是一个单页面的H5网页,所有元素的加载都是一次性的,这就引来了生命周期的概念:

  • 首次打开,小程序初始化
  • 小程序初始化完成后,触发onShow事件
  • 小程序被切换到后台(熄屏,切换APP等),触发onHide
  • 小程序从后台切换到前台,再次触发onShow
  • 小程序出错,触发onError

每个页面也有自己的生命周期:
注意:在微信6.5.3版本中,部分Android机触发不了onLoad事件,可以用onReady替代。
事件广播
“单页面结构”的微信小程序,你可以使用事件广播(统一的事件中心)来注册和触发自定义事件,否则到后期事件管理会越来越乱,而且涉及跨页面传输事件,你更需要这种事件触发机制,可以参考[url=]broadcast.js[/url]。比如在摩拜单车中有这样的场景:
扫码成功后在开锁页面A提示开锁成功,要跳转到骑行页面B并查询用户骑行状态。
如果没有统一的事件管理中心,你几乎无法完成这样的过程,当然,可以使用Hack的方式解决。因为跳转到页面B会触发B的onShow事件,所以可以在onShow中写业务逻辑:
但更合理的应该是利用事件广播来处理:
file:///C:\Users\admin\AppData\Roaming\Tencent\Users\1441761649\QQ\WinTemp\RichOle\D%H@JBI8PKQNHQ63}B14EQH.png

1 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马