Skip to content

平台兼容性 ​

支持矩阵 ​

能力微信小程序支付宝小程序H5
基础树 / 展开收起✅✅✅
单选 / 多选 / 父子联动✅✅✅
搜索过滤 / 高亮✅✅✅
懒加载✅✅✅
虚拟渲染✅✅✅
自定义插槽✅✅✅

验证范围说明

  • H5:构建与交互验证,组件自动化测试通过
  • 微信小程序:构建验证(CI 自动化)
  • 支付宝小程序:构建验证(CI 自动化)
  • App / 其他平台:理论兼容,未充分验证

微信和支付宝小程序的实现基于 uni-app 标准 API 和组件。当前 CI(自动运行检查和构建的流程)验证构建结果与组件体积,但尚未覆盖真机交互,因此表格表示实现支持范围,不代表所有机型和基础库版本都已验证。进入 1.0 不改变这一验证边界。

实现层面的兼容性说明 ​

点击反馈使用 hover-class ​

小程序不能可靠触发 CSS :hover 和 :active 伪类,组件内部使用 uni-app 的 hover-class 实现按压反馈,避免依赖 H5 专属的交互方式。

图标使用内联字体 ​

展开箭头、复选框图标通过 base64 内联字体实现,不依赖网络字体,离线可用,也避免了小程序 @font-face 远程加载的域名白名单问题。

虚拟渲染基于 scroll-view ​

虚拟滚动通过 scroll-view 的滚动事件和上下占位区域实现,不依赖 IntersectionObserver。

组件在滚动事件短暂停止后通过 createSelectorQuery 读取实际偏移,校正渲染窗口;若偏移仍在变化,会继续延迟测量,直到读数稳定。测量只更新内部窗口状态,不回写 scroll-top。新的滚动、节点定位、数据或视口变化会使旧测量失效;窗口变化后会重新安排测量。内容未超出视口时不安排偏移查询,但仍会校正列表缩短后的越界位置;恢复可滚动范围后会重新测量。

虚拟模式的两个前提

  1. virtual-height 是容器高度,只接受数值,单位固定为 px,默认值为 400;它需要与实际布局一致,否则滚动定位会错位
  2. 每行高度必须固定,并通过 virtual-item-height 设置,单位为 px

virtualHost ​

组件在微信/支付宝小程序上开启了 virtualHost: true,自定义组件不产生多余节点,外层样式(如 flex 布局)可以直接作用到组件根元素。

单位约定 ​

  • 组件内部样式(行高、图标、字号、间距)统一使用 px,按 375px 设计稿取值,在平板、PC 端 H5 与小程序 PC 版上不会随屏幕宽度放大
  • indent 缩进单位为 px,不随屏幕宽度缩放;需要按屏宽缩放时,请自行用 uni.upx2px() 换算后再传入
  • virtual-height 和 virtual-item-height 只接受数值,单位为 px;不能直接传 rpx、%、vh 或 calc()

App 端 ​

App-vue 理论上可用(实现未使用任何 H5 专属 API),但未经过充分测试;nvue 不支持。欢迎反馈使用情况。

Released under the MIT License · 使用或改造请保留版权与许可声明