WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2025-03-03 bf47e047be64deb0851ff34fa4ad953c89295ab3
知识库文档,数据控制层基类完善
1 files modified
56 ■■■■■ changed files
_knowledges/202-数据控制层基类Pilot.md 56 ●●●●● patch | view | raw | blame | history
_knowledges/202-数据控制层基类Pilot.md
@@ -33,7 +33,7 @@
`createOptions` 是类 Pilot 的核心方法,此方法将独立申明的信息合并回原 Vue 对象
### 主要工作
### 主要工作:生成合并对象
* 扫描当前类,以 \$ 开头的属性或方法,去掉 \$ 符后,直接作为 Vue 的属性或方法准备合并
* 扫描当前类,非以 \$ 开头的方法,作为 Vue 对象申明中 methods 的子级方法准备合并
@@ -104,6 +104,58 @@
### 页面能力扩展:跨页面通讯
给实际 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 层进行通讯,增加了跨通讯的能力
(更多跨端通讯明细待续)