小程序技能进阶回忆录 - 也许你并不需要小程序框架

7,131 阅读4分钟

你也许并不需要小程序框架。

市面上不停的会有大的公司推出自己的小程序的研发库 / 框架,功能十分强大,也为小程序的开发带来了便利。但在一些积极的反馈中,我们也看到不一样的声音:

  • @白小虫:又一个轮子。。
  • @jsweber:小程序不用任何框架,开发体验也不错啊,本身就借鉴了 vue 和 react 的思想。
  • @月月木子:现在中上流公司的前端都很热衷于造自己的轮子或者给别人的轮子换皮然后说是自己的轮子,疯狂垒高自身的技术壁垒,即有了给领导吹牛的资本,让新来的人肯定属于不熟练工,又可以给自身带来安全感,不知道到底是好是坏。
  • @redbuck:轮子越造越多,我寻思下一个小程序要不转回原生算了。
  • @fantasy525:感觉一次编码全端支持没多大必要,支持的越多就可能会出越多的bug,我们开发时会很难受,本来只解决一端的bug,多端我们又要解决其他端,还不如各司其职好。
  • @肉很多:学不动了呀。。。。😠

上列评论从掘金用户评论中挑选。

这几天公司校招,面了一些在校生,其中有两位同学让人印象深刻:

一、同学 A 面试接近尾声突然问起,你们被美团收购后,是不是都要必须使用 mpvue(美团早年推出的小程序框架)?当我回答不是后,同学 A 长舒一口气:那就好。他解释道:更偏向用原生去写小程序,因为微信团队更新节奏比较快,框架经常跟不上微信的节奏,导致新特性无法在项目中使用。

二、同学 B 在简历中写道精通 jQuery,我在想这年头了,jQ 在简历中出现的越来越少了,故意抓着这个问了下,果然比较了解。他说道:经常用 jQ 做一些网页 demo,因为上手比较容易,直接引入一个cdn js就行,都不用装 node 包。

em... 好像说的都挺在理。

在摩拜单车内部,我们封装了基于微信小程序原生语法进行扩展、对原生微信 API 支持友好的小程序基础库 - Mozzy。注意:其定位是基础库,而不是框架。只要在原生语法的小程序项目里引入一个 js 文件就可以使用,即便是开发到一半的小程序也可以快速引入。

记得刚做完这个项目在公司内部分享时,说到未来的愿景时最后一句是:

也许有一天,当使用了 Mozzy 开发的小程序,删除 mozzy.js 后,发现功能竟然一切正常。

相信早些年用 jQ 做项目的时候很多同学都脑洞过,要是浏览器原生支持 jQ 的 api 多好,或者干脆浏览器直接集成 jQ,就不用在每个项目的 html 里都引入一段 jQ 代码了,毕竟 jQ 在当年几乎是网页开发必备基础库。

随着微信官方 api 的更新,Mozzy 的很多实现都有了官方支持。也许当时分享的未来愿景已经来了,最近要开启删(改造) Mozzy 行动,换种方式存在于千万行代码中。

拥抱变化。

接下来的一系列文章里,会记录下 Mozzy 甚至是整个摩拜单车小程序研发细节和心路历程,可称为小程序技能进阶回忆录

主要内容目录如下,大部分已经写完,会不定期进行更新:

  • 小程序技能进阶回忆录 - 在缺少组件化的日子里
  • 小程序技能进阶回忆录 - 自主实现数据侦听器和计算器
  • 小程序技能进阶回忆录 - 自主实现拦截器
  • 小程序技能进阶回忆录 - globalData 的那些事儿
  • 小程序技能进阶回忆录 - 什么时候执行 onLoad
  • 小程序技能进阶回忆录 - 增强型的 wx.navigateBack
  • 待定

当然,不排除标题修改为“标题党”形式糊弄人。正如此篇一样^_^