File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22name : mpx2rn
33description : Mpx 跨端输出 RN(简称 Mpx2RN 或 Mpx2DRN)的开发适配指南,覆盖模板、脚本、样式、JSON 配置四大维度。当用户进行 Mpx2RN 相关任务时强制调用,包括但不限于:技术方案设计、页面 / 组件的开发迭代、旧项目跨端适配改造、编译和运行时报错排查、Code Review 等。当用户问题不涉及 Mpx2RN 时不应调用,如 Mpx 小程序开发问题,RN 原生开发问题、Mpx2Web 相关问题等。
44metadata :
5- version : " 2.12.5 "
5+ version : " 2.12.6 "
66 author : donghongping
77---
88
@@ -83,9 +83,10 @@ Mpx 是一个以微信小程序语法为基础、进行了类 Vue 语法拓展
8383
84841 . ** 生命周期与构造选项** :仅使用[ 逻辑能力参考] ( ./references/rn-script-reference.md ) 中标注 RN 支持的生命周期、构造选项和实例方法;` onShareTimeline ` / ` onTabItemTap ` / ` onAddToFavorites ` / ` onSaveExitState ` 等不支持项不得直接用于 RN 产物。
85852 . ** 环境 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
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments