跨平台开发框架介绍

前记:现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。 根跨平台兼容较多的为Taro,uni-app,chameleon等3款;若只需兼容微信小程序的话则市场上使用较多的是mpvue及WePy;

表格对比

  • 表格做简单对比,具体详细信息可查看下方具体内容。
Tarouni-appchameleonmpvue
开源 公司京东 (凹凸实验室)DCloud滴滴美团
适用编辑器HBuildX
语言 规范类Reactvue类vuevue
模板 系统JSX字符串模板字符串模板字符串模板
组件化React组件规范自定义+vue组件规范自定义组件规范vue组件规范
数据流管理ReduxVuexchameleon-storeVuex
支持 平台小程序(微信/支付宝/百度/字节跳动),快应用,RN,H5App(iOS,Android),小程序(微信,支付宝,头条,百度),H5小程序(微信,支付宝,百度),H5,native-weex,快应用微信小程序
自动 构建Taro CLIHbuildX开发工具 + vue CLIchameleon-toolCLI + webpack
上手 成本熟悉React熟悉vue.js熟悉vue.js+chameleon熟悉vue.js
UI组 件库https://taro-ui.aotu.iohttps://uniapp.dcloud.io/component/README
官方 社区http://ask.dcloud.net.cn/explore/category-11
GitHubhttps://github.com/NervJS/taro issue: 333op, 1470 PR: 32open, 302 star: 14422https://github.com/dcloudio/uni-app issue: 43op, 136 PR: 3open, 15 star: 2227https://github.com/didi/chameleon issue: 333op, 1470 PR: 32open, 302 star:2037https://github.com/Meituan-Dianping/mpvue issue: 4op, 34 PR: 0open, 3 star: 15787
慕课课程2个,手记18条,猿问11条课程–,手记–,猿问5条课程2个,手记18条,猿问11条课程1个,手记91条,猿问33条
掘金20条左右10条左右100条左右
CSDN9页内容12页内容13页内容
极客17条数据3条数据8条数据
开源 时间18年6月份18年10月份19年1月份18年3月份

1:Taro

1.1:基本介绍

  • Taro由京东的O2开发团队推出;从开源到现在不足1年的时间,taro从18年3月份开始立项,6月份开始开源;初期是为了使用react的语法来写微信小程序;作为微信小程序的开发框架而诞生,后期为了更多的需求逐步兼容快应用,react native应用;所以在兼容性上H5页面及微信小程序兼容最好;有专门的开发团队,后期维护比较有保障。
  • 开发语言为React规范,模板系统为JSX;上手成本需熟悉React,数据流管理为Redux。且京东团队研发出了一款类React框架Nerv;
  • 有配套的开发工具Taro CLI让开发流程自动化,可以从命令行开始创建项目
  • 目前官网表示已适配微信小程序,H5,React Native,支付宝小程序,百度智能小程序,字节跳动小程序;快应用及QQ浏览器轻应用待上线;需注意的是目前官网上的应用案例皆为微信小程序。
  • 另外微信小程序代码可由Taro工具进行转化成Taro代码。
  • Taro实现原理
    在这里插入图片描述

1.2:学习成本

  • 学习成本为需熟悉React,以及react的相关技术栈;可使用京东的Nerv框架,与react类似,由于本公司的主要技术栈为react,学习成本不大;
1.2.1 Taro 组件库
1.2.2:跨平台开发注意事项
  • 由于跨平台较多,有很多常见前端的一些事件与方法在Taro中可能并不适用,所以需要格外注意;参考官网中所注的“开发前注意”的相关问题需熟知;

​ 链接:https://nervjs.github.io/taro/docs/specials.html

  • 另在使用Taro时需遵循其官网标出的Taro规范限制;其中大部分限制在本公司项目中已有,内容较多,需细心调试开发;可用eslint进行限制提示;

​ 链接:https://nervjs.github.io/taro/docs/spec-for-taro.html

1.2.3:根据不同平台配置不同

1.3:学习途径

1.4:构建

1.5:各大网站数据

1.5.1:GitHub
  • GitHub中与2.11及2.12查看数据,其中issue中的提问及关闭皆有更新;2.11中数据为 issue: 325open, 1458closed;Star: 14353;表明在GitHub中更新较快;

1550043486575

在这里插入图片描述

在这里插入图片描述

1.5.2:慕课网

https://www.imooc.com/search/course?words=taro

  • 课程有2条,一个学习人数为132(收费266元),另一个为6616(免费);其中手记有18条,猿问有11条数据。用户较多;
1.5.3:极客时间

https://s.geekbang.org/search/c=0/k=taro/t

  • 搜索结果有20个左右,其中与Taro相关的为17条左右。靠前的文章发布者多为Taro框架开发者凹凸实验室;
1.5.4:CSDN

https://so.csdn.net/so/search/s.do?q=taro&t= &u

  • 分页有9页,条目800多条不准确;博客文章较多。用户比较活跃
1.5.5:掘金

https://juejin.im/search?query=taro

  • 大部分文章为Taro框架开发者凹凸实验室所发表。

2:uni-app

2.1:基本介绍

  • uni-app由DCloud推出;从官网上18.1.12日开始进行内测,18.10.10日1.0.0版正式发布,迄今为1年时间左右;开发需在Dcloud自己研发的开发工具HbuildX中开发,调试效果最佳;兼容适配面较广,支持一套代码生成App(iOS,Android),小程序(微信,支付宝,头条,百度),H5等多套代码;官方示例以上平台皆有产品展示;可靠性较高。
  • 开发语言为Vue,模板系统为字符串系统;上手成本需熟悉Vue,数据流管理为Vuex。
  • 开发App必须使用HBuildX,其他编辑器搭配Cli只能开发小程序及H5;

2.2:学习成本

  • 开发编辑器最好需更换成HBuildX,熟练Vue及Vue相关技术栈;开发某种平台项目则需遵守该平台所定规则。
1.2.1:uni-app 组件库
1.2.2:跨平台开发注意事项
  • 由于跨平台较多,官网中已分别列出开发各平台时候的注意事项,开发前需了解并熟悉,避免踩坑。

​ 链接:https://uniapp.dcloud.io/matter

1.2.3:根据不同平台配置不同

2.3:学习途径

2.4:构建

https://uniapp.dcloud.io/quickstart

  • 使用HbuildX开发工具,从创建,打包,发行皆可直接操作。
  • 使用Vue-cli进行安装,创建,运行并发布。

2.5:各大网站数据

2.5.1:GitHub
  • GitHub中与2.11及2.12查看数据,其中issue中的提问及关闭皆有更新;2.11中数据为 issue: 43open, 133closed;Star: 2200;表明在GitHub中更新较快;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.5.2:慕课网

https://www.imooc.com/search/wiki?words=uni-app

  • 无相关课程;其中手记无相关数据,猿问有5条数据左右。活跃度不高;
2.5.3:极客时间

https://s.geekbang.org/search/c=0/k=uni-app/t=

  • 无相关内容
2.5.4:CSDN

https://so.csdn.net/so/search/s.do?p=12&q=uni-app

  • 分页有12页,条目2000多条不准确;活跃度还行
2.5.5:掘金

https://juejin.im/search?query=uni-app

  • 有关uni-app的帖子数量为10来条,数量不多,活跃度不高
2.5.6 DCloud官网推荐社区

http://ask.dcloud.net.cn/explore/category-11

  • 发帖数量较多,基本问题上有回复数据,活跃程度较高。

3:chameleon

由滴滴团队打造,有类似于微信小程序打造出了一套滴滴的代码规则,名称即为chameleon,相应的为CML+CMSS+JS;语法有两套,分为CML-标准语法,CML-类vue语法;构建有自带的chameleon-tool脚手架工具,可根据不同环境进行初始化项目,进入开发/生产模式,分不同环境进行查看帮助信息,开发模式构建,执行打包模式构建。面世较晚,网络查阅相关网站上资料较少,部分网站上的内容基本照搬官网;社区生态不如以上两款活跃;

由于滴滴团队在相关网站上进行贬低另两家,感觉人品有问题,就不在这介绍了,当然。

若有兴趣可于官网学习,

4:mpvue

以上3款介绍的都是支持多平台应用,但若只是需要做到H5与微信小程序的两端共用1套代码的话则由WePy与mpvue等几款框架;由于社区上查看到WePy出来较早,坑比较多,且它只是类Vue语言,学习成本较高,故以下主要介绍mpvue框架。

4.1:基本介绍

  • mpvue(官网)由美团推出;且美团点评在多个实际业务项目中得到验证才开源;GitHub最早一条发布记录为18.3.14日。
  • 官网表明未来最理想的状态是可以一套代码直接跑在多端:web,小程序(微信和支付宝),Native(借助weex),至今未出现相关介绍;
  • mpvue (github 地址)是一个使用 Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序环境中,从而为小程序开发引入了整套 Vue.js 开发体验

在这里插入图片描述

4.2:学习成本

  • mpvue保留了 vue.runtime 核心方法,无缝继承了 Vue.js 的基础能力

  • mpvue-template-compiler 提供了将 vue 的模板语法转换到小程序的 wxml 语法的能力

  • 修改了 vue 的建构配置,使之构建出符合小程序项目结构的代码格式: json/wxml/wxss/js 文件

  • 熟悉vue及vue相关的技术栈;

4.2.1:mpvue 组件库
  • 支持vue.js的组件模块内容,不过只能使用单文件组件(.vue 组件)的形式进行支持。
  • mpvue 可以支持小程序的原生组件
4.2.2:跨平台开发注意事项
  • 由于基本只适配微信小程序且构造基本为vue,所以在构建项目时需遵守vue.js及微信小程序的规范进行构建项目。有以下相关不支持内容。

http://mpvue.com/mpvue/#_6

4.3:学习途径

4.4:构建

http://mpvue.com/build/

  • 通过webpack完成将template转换为wxml和样式转换优化以及其他的若干代码的拼接混淆等操作。
  • 为了有需要自定义配置的程序猿们出了个命令行工具cli,可以一键构建出需要的项目结构和配置。

4.5:各大网站数据

4.5.1:GitHub
  • 数据基本趋于稳定,issue中closed栏目几天来只关闭1条;更新较少。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.5.2:慕课网

https://www.imooc.com/search/course?words=mpvue

  • 课程有1个,学习人数为1277,收费(266元);猿问33条,手机91条;社区活跃度较高。
4.5.3:极客时间

https://s.geekbang.org/search/c=0/k=mpvue/t

  • 相关内容8条,活跃度不高
4.5.4:CSDN

https://so.csdn.net/so/search/s.do?p=12&q=mpvue

  • 分页有13页,条目3000多条不准确;活跃度较高,博客内容具有参考性
4.5.5:掘金

https://juejin.im/search?query=uni-app

  • 有关mpvue的帖子数量有近100条,帖子众多,活跃度比较高;帖子内容具有参考性

总结

以上各种轮子可谓是百花齐放,但由于小程序或者是快应用等应用本身规范较多,而且复杂应用一般对于开发方式有较高的要求,如组件和模块化,自动构建和集成,代码复用和开发效率等皆有一定的要求;所以在使用以上的框架需要基于实际情况进行选择。而且以上框架从开源到现在基本时间在1年左右,而且以上产品均是在微信小程序方面完成度比较高,对于其他的平台可能坑比较多;不过总要有踩坑的人,尤雨溪大佬的vue迄今也不过3,4年的时间,使用者众多;所以若非核心的且功能比较简单的应用可以尝试使用;至于选用哪一种则大家可讨论出结论即可。

Logo

前往低代码交流专区

更多推荐