聊聊微信小程序开发框架及一些心得
这阵子因为某些原因又要开始写小程序了。其实写过小程序的人都知道,原生小程序在开发过程中到处都充斥着傻屌的气息
所以这次实在不想继续原生开发。正好时间不是很紧实际上紧得很,怎奈就是手痒
于是试用了3款算是大厂出品的小程序框架。最近比较有空,来简单写下感想
以下内容基于一个前端菜鸡一周多前的记忆整理而成,如有疏漏望友好指出
WePY
说到小程序的框架,第一反应就是这款腾讯出品的、大概是最老牌的框架。它甚至在小程序正式发布前就更新了好几个版本
应该是目前最早、最多人使用的小程序框架了。首页上各种基于WePY的项目也不少,应该趟过不少坑了
文档里还对微信小程序IDE进行了无情的嘲讽:“开发建议使用第三方成熟IDE或编辑器”
看来是腾讯内部人士也对小程序自带的IDE和原生语法架构十分不满,才搞了个这么个玩意儿
果断用它了。根据入门教程用wepy-cli
创建项目十分轻松,直接就能跑起来
但是后来我为什么又弃了呢?主要是因为遇到两个坑,我也不知道是我太菜还是WePY的坑,反正是没找到解决方案。具体是啥坑我也不记得了
而且WePY还封装了一层,使得语法并不是原生Vue,只是很相似。封装还导致了一个问题——比如我在app.wpy
里添加一个globalData
属性用于存储全局变量,然而你在其他页面用getApp().globalData
却取不到之类的,有时候就很烦,但是无能为力,文档虽然详细,但有些点就是没说明,很难受
翻了翻WePY的issues,发现还真不少(当然这里面也有用户量大、项目发布早的原因)。比如组件支持的问题还很多。在某个issues里面,一位项目贡献者说WePY是去年才划入腾讯名下的,而且大部分时候还是只有一个人业余维护,并且2.0大版本更新已经在路上了。就感觉现在写1.x像是49年入国军的感觉,姑且先弃了,看2.0的情况吧
mpvue
美团点评出品的小程序框架,在我经常去的社区V2EX上发帖推广过的,自称旗下数款小程序都正在使用/接入
相比WePY的类Vue语法,mpvue的特色在于拥有完整的Vue开发体验,并且也能够支持Vuex
他们未来是希望可以一套代码可以直接跑在多端:WEB、小程序(微信和支付宝)、Native(借助weex)。听起来有点意思
不过目前而言,这个项目最大的问题在于——可能你点开上面链接时就已经发现了,是的,就是文档太拙计了
相比WePY,文档简陋得简直不像话。好在跟着五分钟上手教程还算跑得起来,一切顺利
不过由于文档实在太拙计,遇到了一些问题无法解决。时间又紧,无法等待开发团队答复乃至修复,只好弃掉。
……
我已经面如死灰已经做好了写原生的准备了
不过,就在这时,我发现了——
Min
美丽集团(就是蘑菇街、美丽说所属集团)旗下Min团队推出的小程序框架+组件库。其口号为“让小程序组件化的开发和使用变得高效、愉悦”
看了下文档,比mpvue稍完善些。姑且试试好了
依然是一次过成功的入门教程。尝试了一下上面提到的globalData
,令我惊喜的是它似乎比上面两者在实现上更加纯粹,可以通过getApp().globalData
来调用,美滋滋
但是它的文档似乎有些问题,有些可能是忘了更新,有些就直接是硬伤了
比如组件库-选项卡这里第一段示例代码,tab的点击事件onClick
是写在methods
中的,是不是很Vue的感觉?实际上你这么写是要报错的。实际写法就跟原生那样,必须写在跟data
属性同级才行。这大概是忘了更新文档?
比如支持 ES6/7 新特性这一节,示例代码中两个方法居然是用;
而不是,
作为分隔。这代码能跑起来?
好在解决起来不费时间,小坑而已,动手试试就爬出来了,除此之外就没遇到别的坑了
其他特性跟上述两个框架差不多,可以引入NPM包啦、支持async/await之类。不得不说async真是好东西,再也不用写原生傻屌回调了
一些心得
如果你跟我一样懒得手动把小程序自带API全部用Promise封装一遍的话,我推荐你试试这个minapp-api-promise
配套的MinUI也提供了一些不错的组件,但奇怪的是缺失了一些基础组件,比如Button之类的。这个可以用微信官方的WeUI小程序版作为补充
不过这里面又有一个坑——WeUI小程序版里的样式居然是完全用px写死的!这就导致跟MinUI搭配使用时,WeUI的组件变得非常小,几乎无法正常使用
解决方案是手动写CSS覆盖WeUI的一些样式里面的尺寸值
……
那多难受啊?我时间很紧的好吗?
我上去就一个.zoom{ zoom:1.8 }
,并把这个类加在所有WeUI组件上,完美解决
总的来说,目前而言各框架还是不够稳定成熟,明坑暗坑无数,而且编译后的代码几乎不可读。一旦出问题,对于我等菜鸡几乎只能反馈等待官方修复。所以自己玩玩还行,正式的、大点的项目还是算了吧,大家也要注意这个风险
不过,写起代码来是真TM爽,好比本来要你兼容IE6的项目,突然告诉你说Chrome能跑就行一样
mpvue,taro,uni-app的坑都踩过,熟悉vue就用uni-app,熟悉react就用taro
博主之前写什么后端的?
PHP呀
看着这能写小程序的博主,厉害到爆的样子,没技术的只有各种羡慕了。网站的配色也非常的好,第一次来,收藏了。
哈哈,看完都笑出声了。。同样写原生的土著路过。。wepy这玩意儿我用过一个下午,迅速放弃。转投原生+ZanUI。。。
一直写小程序原生代码的土著路过……
为公司写过一个原生小程序,难受的点太多了。所以这次任务直接折腾起来
还没试过微信小程序(:з」∠)
玩玩还行
然后你变成了前后端通吃大佬 嘤嘤嘤
不不不可能的,分明是变成两边都会都不精通的辣鸡
大佬谦虚了
基酱你变了
哇,我记得你不是后端开发的么,,什么时候转前端了
因为近几年认识的都是前端大佬,受刺激了……他们都能搞出好多好漂亮的东西我却不行嘤嘤嘤……
主要是这几年前端发展很快,有了很多很有意思的东西。而且写腻了CRUD
也是想趁着年轻多看看其他路子,没必要吊死在后端上
我就是前端菜鸡,确实前端更新换代太快了。最近想搞微信小程序,又不想用原生,总而言之,框架这东西更有利弊,加油哟!