开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情
在支付宝小程序中每个页面新添加了events属性,这个是微信小程序里没有的。
events属性
- 它里面可以放一些系统本身就有的一些监听方法,它里面监听的方法中的参数,需要通过e获取,当然也可以不叫e,叫做别的参数。
- 除此之外没有其他特别含义,只是看起来代码更简洁。
- 以下是 events 支持的事件函数列表:
| 事件 | 类型 | 描述 | 最低版本 |
|---|---|---|---|
| onBack | Function | 导航栏左侧返回按钮(以及 Android 系统返回键)被点击时触发 | 1.13.7 |
| onKeyboardHeight | Function | 键盘高度变化时触发。 | 1.13.7 |
| onOptionMenuClick | Function | 点击导航栏额外图标触发。 | 1.13.7 |
| onPullDownRefresh | Function({from: manual/code}) | 页面下拉时触发。 | 1.13.7 |
| onTitleClick | Function | 点击标题触发。 | 1.13.7 |
| onTabItemTap | Function | 点击非当前 tabItem 后触发。 | 1.13.7 |
| beforeTabItemTap | Function | 点击非当前 tabItem 前触发。 | 1.13.7 |
| onResize | Function({size: {windowWidth: number, windowHeight: number}}) | window 尺寸改变时触发。 | 1.16.0 |
| onSelectedTabItemTap | Function({pagePath, text,index}) | 点击当前 tabItem 后触发。 | 2.7.2 |
其他自定义的事件处理函数和生命周期函数不能写events:{}在这里。
this.setData({},callback)是异步操作,callback在页面渲染更新完成之后执行。
在我们使用过程中,需要注意以下几点:
- 直接修改
this.data无效,无法改变页面的状态,还会造成数据不一致。 - 仅支持设置可
JSON化的数据。 - 请尽量避免一次设置过多的数据和频繁多次调用
setData(),两种情况都会影响性能。尤其会影响首屏渲染速度。 - 请不要把
data中任何一项的value设为undefined,否则这一项将不被设置并可能遗留一些潜在问题。