官方解释: 使用 Taro,我们可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动小程序、H5、React-Native 等)运行的代码。
使用前
第一次看到Taro是在github搜索React插件时看到(个人习惯,有时候会去搜索一个语言的插件在GitHub再按照Star排名,看看各个插件功能,后期开发时用到这功能有个印象),感觉挺好的插件,以后开发小程序和快应用应该用的到,因为它直接使用react可以开发多端,相比于去看各个厂家小程序开发文档,使用Taro几乎没有学习成本。
为什么要了解它
这次使用它开发一个简单的网页南瓜棋,小时候玩的一个游戏,逻辑还是比较简单的,主要是去了解下Taro优缺点,以后开发公司简单小程序、快应用等做好准备,主要是了解他的局限性。
开发感受
具体看文档,我简单说下感受,我的前端水平:简单的HTML、CSS了解复杂的网页不会(动画啥的还得看文档),React-Native水平应该还是不错,主流的React-Native框架都会搭建,开发,原生调试,编写没问题,ES6没问题。React看了2周吧,入门。这个Taro,直接写按照文档走,没出现问题。
缺点
- 由于之前大段时间开发RN的所以开发时直接使用style={styles.你的}这种开发,开发完H5时,打算运行在小程序上发现尴尬了,样式全乱了,后面给尺寸加px。
- 用Mobx在store里面有个方法我命名onChessGo,H5运行没问题,小程序不行,排查了一段时间发现微信小程序里的Mobx->store方法不能已on开头,这个要注意。
- 好像暂时是不能引用三方UI库的和UI组件库的,这和Taro功能有关,可能一个小程序的库肯定不能用在React-Native,这个缺陷会加大开发复杂页面的时间,可能对于原生(各个小程序新功能)新功能支持可能也不会太及时,由于页面简单,了解时间端更多的缺陷也没有看到。
- return tsx时在非render里面是不能运行的在微信小程序里,H5没问题。
优点
- 快速开发各端的应用,不需要任何学习成本(我这前端小白都直接开写),还提供各个应用的原生功能的接口方便用户调用。
- 确实可以多端打包,亲测有效,但演示和一些细节要注意了。
- Taro自己开发了一个UI库(Taro-ui)满足了大部分的组件需求,最后最重要的一点是个人认为大多数小程序、H5、快应用都是用于引流或者简单功能开发,这些功能开发Taro应该都可以满足,还有就是时间和人力成本Taro也是有优势。
应用南瓜棋
H5截图
微信小程序截图
支付宝小程序截图
今日头条小程序截图
代码注意事项
-
- 由于之前以为在H5上运行,其他地方样式就一样,可是后面发现不行,所以样式用的内联样式,建议大家用css、less、scss这样H5和其他端样式应该一样。
-
- 有些命名不能用例如Mobx里store里的方法@action不能以on开发,微信小程序就调不懂。
-
- 今日头条小程序打包后有问题确实了project.config.json,反正我这边编译后导入不了,我新建了一个project.config.json复制过去,可能是这个原因导致下面的UI不见了。
-
- 我这边测试来了正常: H5、微信小程序、支付宝小程序,编译后缺少东西但可以运行:今日头条小程序,其他的没测试太耗时。
热门评论
请问下运行npm run dev:rn
提示:Error:不存在编译平台 rn
怎么解决呢?