Skip to content

Commit 268b7c9

Browse files
committed
update skills
1 parent d86c0ad commit 268b7c9

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

.agents/skills/mpx2rn/SKILL.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: mpx2rn
33
description: Mpx 跨端输出 RN(简称 Mpx2RN 或 Mpx2DRN)的开发适配指南,覆盖模板、脚本、样式、JSON 配置四大维度。当用户进行 Mpx2RN 相关任务时强制调用,包括但不限于:技术方案设计、页面 / 组件的开发迭代、旧项目跨端适配改造、编译和运行时报错排查、Code Review 等。当用户问题不涉及 Mpx2RN 时不应调用,如 Mpx 小程序开发问题,RN 原生开发问题、Mpx2Web 相关问题等。
44
metadata:
5-
version: "2.12.5"
5+
version: "2.12.6"
66
author: donghongping
77
---
88

@@ -83,9 +83,10 @@ Mpx 是一个以微信小程序语法为基础、进行了类 Vue 语法拓展
8383

8484
1. **生命周期与构造选项**:仅使用[逻辑能力参考](./references/rn-script-reference.md)中标注 RN 支持的生命周期、构造选项和实例方法;`onShareTimeline` / `onTabItemTap` / `onAddToFavorites` / `onSaveExitState` 等不支持项不得直接用于 RN 产物。
8585
2. **环境 API**:统一通过 `@mpxjs/api-proxy` 提供的 `mpx.xxx` 调用环境能力,不要直接使用 `wx.xxx` / `my.xxx`;具体支持范围以[环境 API 参考](./references/rn-api-reference.md)为准。若用户通过 `custom` 配置扩展了能力,以用户说明为准。
86-
3. **selector API**`selectComponent` / `selectAllComponents` / `createSelectorQuery` / `createIntersectionObserver` 等 selector API 仅使用 `#id` / `.class`,且对应模板节点须声明空 `wx:ref`。详见[逻辑能力参考 · 页面 / 组件实例方法与属性](./references/rn-script-reference.md#页面--组件实例方法与属性)
87-
4. **保留关键字**:挂载到实例上的数据 key(包括 `props` / `data` / `computed` / `methods` / `setup return` / `inject` 等)不得使用 `id` / `dataset` / `data`,避免触发 `reserved keyword of miniprogram` 错误。
88-
5. **`<script setup>` 显式暴露**:模板引用的数据与方法须通过 `defineExpose()` 显式声明,不要暴露模板未使用的大型 store、RN 原生对象等无 UI 数据。
86+
3. **Promise 化调用**`@mpxjs/api-proxy` 开启 `usePromise` 时,参与 Promise 化的异步 API 必须使用 `await``.then()` / `.catch()`,不得传入 `success` / `fail` 回调。详见[环境 API 参考 · Promise 化](./references/rn-api-reference.md#使用说明)
87+
4. **selector API**`selectComponent` / `selectAllComponents` / `createSelectorQuery` / `createIntersectionObserver` 等 selector API 仅使用 `#id` / `.class`,且对应模板节点须声明空 `wx:ref`。详见[逻辑能力参考 · 页面 / 组件实例方法与属性](./references/rn-script-reference.md#页面--组件实例方法与属性)
88+
5. **保留关键字**:挂载到实例上的数据 key(包括 `props` / `data` / `computed` / `methods` / `setup return` / `inject` 等)不得使用 `id` / `dataset` / `data`,避免触发 `reserved keyword of miniprogram` 错误。
89+
6. **`<script setup>` 显式暴露**:模板引用的数据与方法须通过 `defineExpose()` 显式声明,不要暴露模板未使用的大型 store、RN 原生对象等无 UI 数据。
8990

9091
### 样式开发约束
9192

.agents/skills/mpx2rn/references/rn-api-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ mpx.use(apiProxy, {
117117

118118
**Promise 化**
119119

120-
只有异步 API 接口才会进行 Promise 化。**`whiteList`** 可指定 API 强制参与 Promise 化;**`blackList`** 从内置规则中排除 API,强制保持回调风格。对于 Promise 化后的 API 若同时写 `success` / `fail``.then()` / `.catch()`,两套回调都会触发,但混用更容易出现 `Unhandled Promise Rejection`,建议同一调用只选一种风格。单次调用若在**第一个参数对象**上写 **`usePromise: false`**可临时关闭 Promise 化
120+
只有异步 API 接口才会进行 Promise 化。**`whiteList`** 可指定 API 强制参与 Promise 化;**`blackList`** 从内置规则中排除 API,强制保持回调风格。开启 **`usePromise`** 后,参与 Promise 化的异步 API 必须使用 **`await`****`.then()` / `.catch()`** 处理结果,不得传入 **`success` / `fail`** 回调。确需使用回调风格时,在单次调用的**第一个参数对象**上设置 **`usePromise: false`**或将该 API 加入 **`blackList`**
121121

122122
若某异步 API 在**未 Promise 化**时除 **`success` / `fail`** 外还有**同步返回值**(例如 **`request`****`RequestTask`****`connectSocket`****`SocketTask`**),则在 **`usePromise: true`** 时:调用表达式得到的是 **`Promise`****`await` / `.then()` 拿到的是与 `success` 对应的成功载荷**;原同步返回值挂在本次返回的 **`Promise`****`__returned`** 属性上(无同步句柄时 **`__returned`** 可能为 **`undefined`**)。
123123

0 commit comments

Comments
 (0)