这个问题就是
- uniapp只能使用它们自己提供的 HBuilderX
- 而taro不限制,可以使用比如 VSCode
但凡是一个多年的前端开发,谁不爱VSCode,为什么要自己去弄一个蹩脚的HBuilderX,开发都是有开发习惯的,很多平时要用的东西没有,即使是位置不同,都会感觉非常的痛苦。为什么要费劲多造一个轮子,而且还做得那么难用。还搞出一个什么uni_modules包管理,是嫌弃node_modules不够满足需求吗,简直笑死。
故事背景
朋友叫帮忙做个微信小程序,虽然是个多年的前端开发,但并没做过小程序;朋友又说了,使用uniapp做起来很快,会写vuejs就行;自己也去搜索了一番,确实都是推荐使用uniapp开发小程序,于是就用了。一顿操作猛如虎,才发现这东西用起来简直是苦不堪言。
- 只能使用HBuilderX,简直是难用到抓狂,跟VSCode比,看起来插件和功能都有提供,但又什么都没弄出来,为啥要浪费时间去弄这些,不要忽略了学习成本
- 代码高亮简直了,同一个变量居然用不同的颜色,真不怕看花眼睛,很多结束标签和开始标签颜色居然不同
- 代码格式化和检测这些,肯定要用eslint和stylelint等以及自己的rules才舒适
- 其他平常VSCode用习惯的功能,HBuilderX也许有但位置不同,也许没有,但不想浪费时间研究,就算有也没有VSCode的体验好,比如搜索,用起来真想卸载。
如愿以偿
偶然,发现了taro这个工具也可以使用vue3开发微信小程序,还可以直接使用VSCode,于是先直接卸载了HBuilderX,心里瞬间已经舒坦了一大半。然后再看看如何把uniapp迁移到taro。
- 首先,用taro创建了一个新项目
- 把VSCode的常用一套安装上去,骑上心爱的小摩托就是爽
- 试着把项目一个页面弄进去,感觉挺容易,毕竟它们都是做适配,内核还是vue和微信小程序那些
- 把uniapp的API转换到Taro的API,由于自己用的是setup的vue3写法,注意,有几个uni里面on开头的Hook,要转换成taro里use开头的Hook
- 把@click换成@tap,这里taro有点坑,多适配一个@click会死啊
- 把echarts转换过去,由于Taro只提供vue2的,但自己懂vue,写个vue3的也很简单
- Taro用的webpack5,这些都是自己最懂的东西,加个自己的插件和loader什么的,简直不要太简单。而uniapp这些都是未知的。
好像也没多少东西需要转,就弄完了。心情愉快,再也不用忍受那个蹩脚的HBuilderX了。
思考总结
- 我们发明了小程序,然后便出来各种小程序,就不能一起开个会,弄一个标准,最多两个阵营竞争就足够了
- 为了适配,有了uniapp和taro,感谢有了这些工具,但能不能让开发把时间聚焦到实现业务上,而不是浪费到去学习这些工具上,拜托别再造烂轮子了,你造的又不是造芯片
- 推荐大家试试taro,尤其是跟我有一样困惑的,而且taro还支持react,新版也在适配鸿蒙系统。
- 至于说taro生态不如uniapp的问题,难道不是vue,react,VSCode,小程序本身的生态么,一个适配工具它能有多少生态,难道不是伪生态么。
- 还有说taro文档不如uniapp的,但个人觉得uniapp的文档是真的读得要吐血,抄什么不好抄微信小程序文档,人家只有一种小程序,但你把多端的所有文档全部揉到了一起,读起来那叫一个费劲,很容易搞错。
欢迎交流不同意见,感谢阅读