| | |
| | | |
| | | `createOptions` 是类 Pilot 的核心方法,此方法将独立申明的信息合并回原 Vue 对象 |
| | | |
| | | ### 主要工作 |
| | | ### 主要工作:生成合并对象 |
| | | |
| | | * 扫描当前类,以 \$ 开头的属性或方法,去掉 \$ 符后,直接作为 Vue 的属性或方法准备合并 |
| | | * 扫描当前类,非以 \$ 开头的方法,作为 Vue 对象申明中 methods 的子级方法准备合并 |
| | |
| | | |
| | | ### 页面能力扩展:跨页面通讯 |
| | | |
| | | 给实际 Vue 实例增加了 |
| | | Taro 的跨页面通讯能力,仅小程序可用,非小城不能跨页通讯非常不方便 |
| | | 因此,给页面的 Vue 实例,增加了跨页面通讯的方法,兼容所有平台 |
| | | |
| | | **跨页发送:$poster** |
| | | |
| | | 此方法挂载到 vue 实例的 this 上 |
| | | |
| | | ```js |
| | | this.$poster(direction, action, data); |
| | | ``` |
| | | |
| | | | 参数名 | 类型 | 必填 | 描述 | |
| | | | --- | --- | --- | --- | |
| | | | direction | String | 是 | 发送去向,有两个值,下一页'nextPage'、上一页'prevPage') | |
| | | | action | String | 是 | 动作名称 | |
| | | | data | any | 否 | 携带数据 | |
| | | |
| | | 例如: |
| | | |
| | | ```js |
| | | export class PList extends Pilot { |
| | | onSaveSetting() { |
| | | // 设置保存后,通知上页 |
| | | this.$poster('prevPage', 'settingChanged'); |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | **跨页接收:$onMessage** |
| | | |
| | | 此方法的用法,类似生命周期的钩子 |
| | | |
| | | ```js |
| | | $onMessage(action, data) {} |
| | | ``` |
| | | |
| | | 例如: |
| | | |
| | | ```js |
| | | export class PIndex extends Pilot { |
| | | |
| | | $onMessage(action, data) { |
| | | // 接收消息,设置已变更 |
| | | if (action === 'settingChanged') { |
| | | // do something |
| | | } |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### 页面能扩展:跨端通讯 |
| | | |
| | | 当我们进混合 APP 开发时,我们需要与 java 层进行通讯,增加了跨通讯的能力 |
| | | |
| | | (更多跨端通讯明细待续) |