v2.11.0
✨ New Features
跨端输出 React Native
样式标准对齐
- 支持容器文本样式向 Mpx 子树中的
text 节点透传,中间存在非 text 组件时不再中断,并支持 numberOfLines、ellipsizeMode 向最近文本节点迁移。
- 将 RN 业务节点默认盒模型对齐为
content-box,并新增 rnConfig.defaultBoxSizing 配置,减少固定宽高叠加 padding / border 时的跨端布局差异。
- 新增
rnConfig.allowFontScaling 配置,用于统一控制 RN 文本是否跟随系统字体缩放。
样式简写能力
- 扩展
gap、inset、outline、font 等简写属性支持,并补齐 text-decoration、background-position、background-size 等样式能力。
border、outline、text-decoration、text-shadow、flex-flow 等无序简写按 CSS 规范根据值类型解析,合法值不再强制依赖固定书写顺序。
gap、rowGap、columnGap 支持百分比值,gap 简写展开后会按行列方向分别基于父级高度 / 宽度换算。
运行时样式能力
style / wx:style、CSS var、UnoCSS var 等运行时样式入口补齐 lineHeight、fontFamily、flex、简写展开、background 等处理能力,与 class 样式能力进一步对齐。
- 简写属性支持单个 CSS var,编译期无法静态判断时会保留到运行时解析。
- 修复组件默认长属性反向覆盖用户简写属性的问题,
border: 0、margin: 0、flex-flow 等写法可正确覆盖组件默认样式。
border-style: none、outline-style: none 以及 border / outline 简写中的 none 统一在运行时清除对应宽度。
运行时性能优化
- 优化
useTransformStyle 热路径,减少普通节点上的无效遍历、正则判断、对象分配与 transform 函数调用。
- 优化
mpx-view、mpx-text、mpx-simple-view、mpx-simple-text、mpx-image 等高频基础组件渲染路径,降低 style / props 拆分、children 包裹、图片 source / style 构造等开销。
- 优化 background 渲染链路,按字段拆分背景预解析、缓存图片尺寸、收敛背景尺寸状态更新,在 background 更新场景下更新耗时显著下降。
- 优化文本样式透传链路,改为基于 context 的子树级透传,避免直接遍历并 clone 子节点。
- 优化事件监听与内部 props 处理,减少小程序属性透传过滤、触摸事件映射等热路径对象分配。
运行时性能探针
- 完善
@mpxjs/perf 包,提供 scopeStart、scopeEnd、mark、measure、start、end、setReporter、createConsoleReporter 等 API。
- 新增
plugin.perf.enable 与 plugin.perf.probes 配置,支持 framework / user 分组探针,并保证关闭态产物零残留。
- RN 框架内置探针覆盖
view、simple-view、text、simple-text 渲染阶段以及 __getStyle 样式聚合流程。
模板与组件能力
- RN 输出支持无值属性按布尔
true 处理,例如 <scroll-view scroll-y />。
image、video 以及自定义内建组件支持本地静态资源路径。
image 组件支持本地 SVG 资源,并新增 is-svg 属性用于强制按 SVG 渲染。
createIntersectionObserver().observe() 支持传入 refs。
- 新增 RN
section-list 扩展组件,支持分组虚拟列表、自定义列表头尾与分组头尾、吸顶、下拉刷新、手势协同及 scrollToIndex()。
picker 补齐 range、range-key 动态更新和触发区域文本样式透传能力。
createSelectorQuery().select() / selectAll() 支持查询非 virtualHost 自定义组件的实体 host 节点。
- 补充 built-in 组件与自定义组件的
displayName 传递,改善 RN 调试体验。
应用与开发能力
- 新增
rnConfig.disablePageTransition 配置,支持关闭 RN 页面转场动画。
- 补全
@mpxjs/api-proxy 中位置、系统、键盘、相机相关 API 的 TypeScript 类型定义。
跨端输出 Web
- 优化 UnoCSS 注入顺序,将
uno.css 放到 App 样式之后,拉齐小程序中 UnoCSS 覆盖全局样式的行为。
- 增强 Web 模板处理,支持
<import> 与 <template> 场景下的模板转译复用。
文档与开发体验
- 新增 RN 运行时按需测速文档。
- 更新 RN 组件、样式相关文档与 Mpx2RN Skill 知识库,补充模板、脚本、样式、JSON 配置、环境 API 与最佳实践参考。
🐛 Bug Fixes
跨端输出 React Native
样式与渲染
- 修复 CSS 变量 fallback 校验不完整导致非法样式未被过滤的问题,并避免 CSS 自定义属性被误判为 RN 数值属性。
- 修复
calc() 中百分比样式、hairlineWidth、box-sizing 等样式转换异常。
- 修复 RN 运行时
lineHeight、flex、transform 等样式处理与编译期口径不一致的问题。
- 修复
boxShadow 不生效以及 px 单位被错误处理的问题。
- 修复
background-size: cover / contain、background-position 等背景相关计算异常。
- 修复
text-decoration-style / text-decoration-color 未按 RN 平台能力正确校验和转换的问题。
- 修复样式条件编译剥离后可能影响样式解析的问题。
文本与组件
- 修复文本样式仅能传递给直接子文本节点的问题,改善跨组件文本样式继承表现。
- 修复内建组件部分小程序属性未被过滤、透传到 RN 原生组件的问题。
- 修复 RN 下自定义组件与 built-in 组件
displayName 传递不完整的问题。
- 修复本地图片、视频资源无法通过模板静态
src 正确进入 webpack 资源处理的问题。
- 修复 Android
input 居中占位符场景的 confirm-type 行为异常,以及触摸移动时键盘意外收起的问题。
- 修复
camera 权限被拒绝后在同一页面内反复请求的问题。
- 修复
picker 数据与 range-key 更新后弹层内容未同步、触发区域样式处理不完整的问题。
- 修复
picker-view-column 项高度计算和初始滚动偏移未同步导致的滚轮动画异常。
交互与 API
- 修复
createIntersectionObserver().observe() 传入 refs 或多个 nodeRefs 时目标节点解析异常的问题。
- 修复
getSystemSetting 被 promisify 包装导致同步 API 语义不一致的问题。
- 修复 Android 初始化阶段安全区顶部值短暂为 0 导致的页面布局抖动问题。
- 修复 RN 页面切换时页面级
navigationBarTextStyle 可能被导航栈状态栏配置覆盖的问题。
构建与运行
- 修复 RN / Web 下
usingComponents 检查相关问题。
- 修复 SourceMapConsumer 同步调用方式不兼容导致的构建异常。
跨端输出 Web
- 修复 Web 端页面样式转译时
page 选择器匹配过宽的问题。
- 修复 Web 输出模板处理相关问题。
国际化
- 修复 i18n 字面量 key 在路径解析前未优先命中,导致包含特殊字符或数值形式 key 时解析异常的问题。
- 修复 i18n key 解析结果为
NaN 时未正确回退到字面量查询的问题。
其他修复
- 修复 URL query 解析时逗号被当作分隔符,导致目标页参数不完整的问题。
- 修复
script setup 编译器中 formatCodeFrame 引用方式不兼容导致的报错。
- 修复 CDN 文档拼写错误。
📦 Packages
- @mpxjs/api-proxy: 2.10.21 => 2.11.0
- @mpxjs/core: 2.10.24 => 2.11.0
- @mpxjs/fetch: 2.10.21 => 2.11.0
- @mpxjs/perf: 2.10.24 => 2.11.0
- @mpxjs/pinia: 2.10.22 => 2.11.0
- @mpxjs/size-report: 2.10.22 => 2.11.0
- @mpxjs/store: 2.10.22 => 2.11.0
- @mpxjs/unocss-plugin: 2.10.22 => 2.11.0
- @mpxjs/utils: 2.10.21 => 2.11.0
- @mpxjs/webpack-plugin: 2.10.24 => 2.11.0
- @mpxjs/webview-bridge: 2.10.21 => 2.11.0
更多详情
可查看:https://mpxjs.cn/articles/2.11-release.html