1.跨端背景
很简单,产品说:本次需求我要能在小程序上使用,其他你想办法!
小程序自身定位:尽量保持简洁独立,工具性质(小程序包大小限制)
2.跨端方案调研
1.跨端方案综合客观对比
项目 | wepy | mpvue | taro | uni-app | chameleon | kbone |
---|---|---|---|---|---|---|
地址 | github.com/Tencent/wep… | github.com/Meituan-Dia… | github.com/NervJS/taro | github.com/dcloudio/un… | github.com/didi/chamel… | github.com/Tencent/kbo… |
star数 | 21.5k | 20.3k | 29.6k | 33.3k | 8.5k | 4.0k |
关注趋势 | ||||||
issue数 | 345 | 422 | 811 | 876 | 150 | 19 |
最后更新时间 | 9 months ago | 3 years ago | 25 days ago | 4 days ago | 10 months ago | 2 months ago |
维护团队 | 腾讯 | 美团 (停止维护) | 京东 | dcloud | 滴滴 | 微信 |
文档可读性 | 4星:文档地址 | 3星:文档地址 | 5星:文档地址 | 5星:文档地址 | 3星:文档地址 | 4星:文档地址 |
组件完整度 | 基于原始组件,是小程序组件化开发框架 | 无组件 | 组件完善((ReactNative 端暂不支持)) | 组件完善 | 组件较完善 | 组件较少 |
周边配套1.扩展性2.工具完备度3.社区4.用户评论 | 3星 | 1星 | 4星 | 5星 | 3星 | 2星 |
2.跨端方案兼容平台对比:(基于防微博应用的测试地址 )
3.跨端方案性能测试(时间/毫秒)
4.综上: uni-app 在各方面相对来说比较优秀
3.基于上面跨端方案的调研,本次需求如果需要考虑兼容小程序,方案列举如下
方案 | 优势 | 劣势 |
---|---|---|
维持现有开发流程,通过小程序webview嵌入使用 | 速度最快,无需额外开发,一套代码 | 1. 用户体验2. 小程序的能力在webview里面使用有限 |
将vue 项目 转换成uni-app ask.dcloud.net.cn/article/361… | 小程序用户体验 | 1. 2个项目独立部署,独立发布,2套代码2. 转换需要不少时间3. 需要熟悉uni-app开发流程 |
针对微信小程序开发界面,把能复用的逻辑抽离出来 | 小程序用户体验项目无多余代码,保留微信小程序原生开发流程和体验 | 1. 两个项目,需分别部署,发布,2套代码 |
项目直接使用跨端方案uni-app进行开发 | 1.小程序用户体验2.可兼容其他小程序3.一个项目,一套代码 | 1.需要熟悉uni-app开发流程,学习成本2.需要了解除微信小程序外的一些跨平台编译特性,其他小程序平台 |
需重点考虑因素:
- 项目将来的可维护性
- 项目现状
- 项目属性(是工具还是服务)和最终目标
- ui样式各平台稍有不一致
建议方案:
考虑到需求性质和目前项目、人员现状,建议先拿****开刀实验(纯小工具性质,比较独立,符合小程序属性),其他功能模块还是按照目前vue h5的方式迭代
前置工作
- 小程序申请
- 各端小程序生态能力了解
- uni-app开发生态原理和开发流程了解
uni-app 如何持续集成
如何持续部署:方案
待验证
嵌套webview 相对于小程序性能体验差距在哪
相比于vue项目,开发注意事项
- 为多端兼容考虑,建议优先从 uni-app插件市场 获取插件。直接从 npm 下载库很容易只兼容H5端
- 布局尺寸单位方案
- 小程序中不存在BOM、DOM对象