我是靠谱客的博主 迷你裙子,最近开发中收集的这篇文章主要介绍小程序开源框架选型及原理介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目前比较流行的小程序开源框架有京东的Taro、dclound的uni-app(集成mpvue)、美团的mpvue和腾讯的wepy。下面我们就从各方面对比这4个框架。

选型

社区生态

以下数据通过 Github Statistics 获得

  1. 维护状态

可以看到uni-app和taro近期还有更新,而wepy和mpvue最新提交已经是几个月前。
在这里插入图片描述
2. Star

截止2021年10月27日,整体情况如下图。从图中可以看到,后起之秀uni-app和taro处于领先地位。
在这里插入图片描述

框架Star 数量Star 平均增长量
wepy2156611.93
uni-app3405128.32
mpvue2037215.32
taro2985423.01
  1. Issues

issues可以反应社区的活跃程度。可以看到taro的issue遥遥领先,表明taro社区非常活跃。由于Bug标签是用户自己打上的,相对不是那么准确,但也能看出uni-app反馈bug较多。
在这里插入图片描述

框架Issues 打开/关闭bug标签 打开/关闭
wepy344 / 17819 / 51
uni-app827 / 185524 / 147
mpvue422 / 12643 / 22
taro850 / 70637 / 76

框架能力

tarouni-appmpvuewepy
语法规范nerv、react、vue规范vue规范vue规范类vue规范
模版系统JSX字符串模版字符串模版字符串模版
类型系统业务代码+jsx模版业务代码业务代码业务代码
组件规范小程序组件小程序组件html标签+小程序组件小程序组件
样式规范postcss、sass、less、styluspostcss、sass、less、styluspostcss、sass、lesssass、less、stylus
组件化react、vue组件化vue组件化vue组件化自定义组件化
多端复用复用为H5复用为H5复用为H5复用为H5
自动构建内建构建系统+webpack内建构建系统+webpackwebpack内建构建系统
上手成本熟悉reactvue熟悉vue熟悉vue熟悉vue+wepy
数据流管理reduxvuexvuexredux

针对每个场景,都可以用原生写出性能最佳的代码,但是这样ROI太低。框架的优势在于:书写更有效率的代码、拥有更丰富的生态的同时,拥有不错的性能。

从社区生态和框架能力上来看,Taro是最优秀的。

实现原理

Taro 1/2 (重编译时、轻运行时)

为了实现兼容多个小程序,分为两个阶段:

  • 编译阶段:通过babel转换成指定小程序的模板;

  • 运行阶段:通过运行时框架,负责适配各端的底层能力。
    在这里插入图片描述

这种方案有几个缺点:

  • JSX 太过灵活,适配成本高。(虽然可以引入react的解析,但Taro怎么能用React的东西「狗头」)。
  • 不⽀持 source-map。因为Taro会对源码进行转换,所以source-map无法起作用。(可以在转换过程中处理,但是成本太高,ROI低)
  • 强绑定React DSL,一旦React有新特性,也需要适配。作为开发者只能升级,才能用新特性。
  • 因为需要频繁操作AST,所以编译速度会更慢。

Taro 3.x (轻编译时,重运行时)

借鉴React和Vue等框架设计,在不同平台中实现render需要的相关API。在小程序端模拟实现 DOM、BOM 相关API ,让前端框架直接运行在小程序环境中,从而达到小程序和 H5 统一的目的。而对于生命周期、组件库、API、路由等差异,通过定义统一标准,各端负责各自实现的方式来进行抹平。
在这里插入图片描述

因为架构上的调整,Taro 3 开始不再跟某一 DSL 强绑定,开发更加灵活,编译速度更加快。

版本区别

Taro 1/2Taro 3.x
开发体验强绑定React DSL,且部分JSX语法不支持(需要hack)不受DSL限制
性能应用复杂,页面节点多、大规模数据更新频繁场景下更优上述场景会薄弱一点,但官方说性能差异不明显。而且也提供了预渲染和虚拟列表组件等解决方案
社区支持力度Taro 1/2 继续维护,但是人力相对较少研发重心放在Taro 3,优先落地新特性

参考文档

小程序开发:用原生还是选框架(wepy/mpvue/taro/uni-app)-- 第1季 - DCloud问答

2020年GitHub上最受欢迎小程序框

小程序框架对比(Taro VS uni-app)

小程序开源框架选型-InfoQ

微信小程序开发框架对比 - Taro vs Remax

Github Statistics

Taro Next 的前世今生

Taro原理总结

Taro 版本升级权威指南 | Taro 文档

最后

以上就是迷你裙子为你收集整理的小程序开源框架选型及原理介绍的全部内容,希望文章能够帮你解决小程序开源框架选型及原理介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(483)

评论列表共有 0 条评论

立即
投稿
返回
顶部