目前市场上主流的小程序框架统计
- Rax —淘系
- Taro —京东
- Chameleon — 滴滴
- WePY —腾讯
- uni-app —Dcloud
- Kbone —腾讯
- Remax — 支付宝
目前市场上主流的小程序框架对比
底层方案对比
| Rax | 编译时 & 运行时 |
|---|---|
| Taro | 编译时 |
| Chameleon | 编译时 |
| WePY | 编译时 |
| uni-app | 编译时 |
| Kbone | 运行时 |
| Remax | 运行时 |
DSL对比
| Rax | React |
|---|---|
| Taro | React |
| Chameleon | 类Vue |
| WePY | 类Vue |
| uni-app | Vue |
| Kbone | React/Vue/Omi |
| Remax | React |
IDE和图形化开发工具支持
| Rax | 无 |
|---|---|
| Taro | 无 |
| Chameleon | 无 |
| WePY | 无 |
| uni-app | 有 |
| Kbone | 无 |
| Remax | 无 |
语法校验
| Rax | 无 |
|---|---|
| Taro | Eslint规则 |
| Chameleon | 自研 |
| WePY | 无 |
| uni-app | IDE支持 |
| Kbone | 取决于上层前端框架 |
| Remax | 无 |
TypeScript支持
| Rax | ✅ |
|---|---|
| Taro | ✅ |
| Chameleon | ❌ |
| WePY | ✅ |
| uni-app | ✅ |
| Kbone | ✅ |
| Remax | ✅ |
样式方案
| Rax | 编译时: Sass/Less/Stylus 运行时: 可配置 |
|---|---|
| Taro | Sass/Less/Stylus/Css Modules |
| Chameleon | Sass/Less/Stylus |
| WePY | Sass/Less/Stylus |
| uni-app | Sass/Less/Stylus |
| Kbone | 可配置 |
| Remax | 可配置 |
语法限制
| Rax | 编译时: 有限制 运行时: 无限制 |
|---|---|
| Taro | 有限制 |
| Chameleon | 较少限制 |
| WePY | 有限制 |
| uni-app | 较少限制 |
| Kbone | 无限制 |
| Remax | 无限制 |
多端编译方式
| Rax | 环境变量条件编译 |
|---|---|
| Taro | 环境变量 + 文件条件编译 |
| Chameleon | 自研多态协议 |
| WePY | 环境变量条件编译 |
| uni-app | 自研条件编译语法 |
| Kbone | - |
| Remax | 环境变量条件编译 |
H5兼容Api
| Rax | ✅ |
|---|---|
| Taro | ✅ |
| Chameleon | ✅ |
| WePY | ✅ |
| uni-app | ✅ |
| Kbone | ✅模拟Dom/Bom api |
| Remax | ✅ |
跨端组件库
| Rax | ✅ |
|---|---|
| Taro | ✅ |
| Chameleon | ✅ |
| WePY | ❌ |
| uni-app | ✅ |
| Kbone | ✅ |
| Remax | ✅ |
小程序支持情况
| Rax | 微信小程序 支付宝小程序 |
|---|---|
| Taro | 微信小程序 支付宝小程序 百度小程序 QQ小程序 字节跳动 |
| Chameleon | 微信小程序 支付宝小程序 百度小程序 QQ小程序 字节跳动 |
| WePY | 微信小程序 支付宝小程序 百度小程序 |
| uni-app | 微信小程序 支付宝小程序 百度小程序 QQ小程序 字节跳动 |
| Kbone | 微信小程序 |
| Remax | 微信小程序 支付宝小程序 字节跳动 |
自研组件库
| Rax | ✅ |
|---|---|
| Taro | ✅ |
| Chameleon | ✅ |
| WePY | ❌ |
| uni-app | ✅ |
| Kbone | ❌ |
| Remax | ❌ |
Demo工程
| Rax | ✅ |
|---|---|
| Taro | ✅ |
| Chameleon | ✅ |
| WePY | ✅ |
| uni-app | ✅ |
| Kbone | ✅ |
| Remax | ✅ |
状态管理方案
| Rax | Redux/ Mbox /iceStore(hooks) 等react生态状态解决方案 |
|---|---|
| Taro | Redux/ Mbox / Dva |
| Chameleon | Vuex |
| WePY | Vuex / Redux |
| uni-app | Vuex |
| Kbone | 可根据DSL进行选择对应的状态解决方案 |
| Remax | React生态状态 |
是否支持与原生代码混用
| Rax | 编译时: 项目、组件都支持 运行时: 暂时仅支持项目 |
|---|---|
| Taro | 仅支持项目中使用原生代码 |
| Chameleon | 项目、组件都支持 |
| WePY | 不支持 |
| uni-app | 仅支持项目中使用原生代码 |
| Kbone | 仅支持项目中使用原生代码 |
| Remax | 仅支持项目中使用原生代码 |
维护团队
| Rax | 阿里淘系无线架构团队 |
|---|---|
| Taro | 京东凹凸实验室 |
| Chameleon | 滴滴顺风车团队 |
| WePY | 来自微信的个人开发者 |
| uni-app | Dcloud公司 |
| Kbone | 来自微信的个人开发者 |
| Remax | 支付宝团队 |
工程复用&可扩展性
| Rax | 基于集团的构建工具build-scripts体系, 与ice工程体系无缝连接, 可复用ice体系功能 |
|---|---|
| Taro | 支持使用webpack-chain自定义配置, 但是仅服务于taro体系 |
| Chameleon | 有限的工程体系, 无插件可用 |
| WePY | 仅提供部分的工程能力 |
| uni-app | 可复用的vue-cli生态 |
| Kbone | 有限的工程配置 |
| Remax | 有限的工程配置 |
小程序IDE支持
| Rax | 支付宝小程序IDE |
|---|---|
| Taro | ❌ |
| Chameleon | ❌ |
| WePY | ❌ |
| uni-app | 支付宝小程序IDE |
| Kbone | 微信小程序IDE可识别 |
| Remax | 支付宝小程序IDE |
附录:
Rax: https://rax.js.org/miniapp
Taro: https://taro.aotu.io/
Chameleon: https://cml.js.org/#/
WePY: https://tencent.github.io/wepy/document.html#/
uni-app: https://uniapp.dcloud.io/
kbone: https://wechat-miniprogram.github.io/kbone/docs/
remax: https://remaxjs.org/
