我对小程序的一些看法与社区框架的选择进行了比较,我的一些看法是从社区中得来的。
Vue的重度用户可能在wepy和mpvue之间徘徊,React和TypeScript的重度用户值得Taro现阶段的首选。这是一个关于我和小程序的故事,但小程序的过去与我无关。
我错过了她一次,但我希望还不算太晚。
毕业后的两年里,我一直在一家创业公司工作,但我错过了很多创业出路,比如区块链和小程序。我只跟随机器学习的趋势,但这是一条漫长的路,除非专心学习,否则很难取得成就。我曾经在现在公司AI Labs的一个部门工作过一段时间,我很清楚这一点。
区块链和小程序无疑是过去一年程序员创业的出路,甚至是风向标。
之前在一家创业公司待过,主要从事股票行业的投资平台业务。React Native为用户承载了APP产品的所有需求,前后端技术团队最多只有11个。虽然是一家小型创业公司,但两位创始人中,CEO是奇虎360 Web产品和商业产品业务线的副总经理,联合创始人是一家大型经纪公司的高管。因此,公司对产品技术进行了多次探索。数字货币涉及区块链,智能投资涉及机器学习,量化投资涉及程序化交易。机会很多,但说实话,这些方向做好真的太难了,尤其是16年来,国内股市一直徘徊在熊市的低谷。
因为思想而辉煌;
变化带来的机遇;
因为蜕变,所以不平凡。
小程序16年内测听说过小程序,但真正接触小程序是17年1月10日,当时一家经纪公司给了我创业公司两个名额,我有幸受邀参加了在北京大学光华管理学院举办的“小程序,大变样——2017小程序全国巡回沙龙”。小程序的正式发布只是在1月9日的前一天。
小程序的诞生一路伴随着不断的赞叹和争议。我就是其中之一,在发布上线的时候并没有受到大多数人的青睐。现在越来越热,甚至可以说我在移动互联网创业领域是骑着尘土,从17年下半年到现在创业的黑马。小程序刚出来的时候,我大概和大多数人的想法一样。大中型互联网公司不可能拥抱腾讯的生态系统,也受限于腾讯父亲严格的游戏规则。
然而在这一年,小程序随着时间和实践证明了它的变化和价值,微信小程序的规则在开发社区的影响下变得更加完善。
对于第三方企业来说,微信为他们带来了巨大的流量入口和低成本渠道,如滴滴、美团、JD.COM等公司都推出了自己的小程序。对于像单车共享这样的企业来说,微信是大多数用户的二维码扫描入口,小程序为他们带来了巨大的流量入口,比如mobike、青菊单车、街兔摩托小程序。
对于小程序开发人员来说,小程序的开发生态在不断完善,从最初的原生框架,到类vue规范的wepy,再到在vue附近编写的MPvue,再到最近刚上线的遵循React规范的Taro。在此期间,拉布拉多出现了一个类似React的小程序框架,但小程序在正式发布后不久就几乎停止了维护。
真正让我惊喜的是Taro,一个小程序框架。尽管它推出的时间最短,但支架附带了TypeScript编译选项,这无疑是企业级小程序应用程序的首选框架。不,我认为TypeScript是必要的,即使它只是一个由一个人维护的小应用程序,这可以帮助开发人员避免一些低级错误,并使代码更容易维护。
Taro是Bump%20%20Lab搭建的一套多终端统一开发框架,遵循REAT的语法规范,是REAT开发者的福音。
Taro官方表示,“只要写一套代码,源代码就可以通过Taro编译工具单独编译,运行在不同的终端(微信小程序、H5、APP【React%20%20Native】),而且Taro还提供了开箱即用的语法检测和自动补全,有效提升了开发体验和效率”。
芋头的优点:
NPM包装管理系统
>ES6+语法
自由的资源引用
CSS预处理器和后处理器(SCSS、Less、PostCSS)
灵活的JSX写法
TypeScript
%20%20%20在我看来,wepy和mpvue都想尽可能地提供一套类vue的写法,但小程序的运行环境始终和Web端存在着差异,不可能完美地支持vue的所有指令及过滤器等等。开发者不但要去踩小程序自身的坑,还要去记住wepy和mpvue到底有哪些vue的特性不能使用,这着实是叫人头大啊。
%20%20%20React和原生的小程序开发方式比更加现代化、规范化、组件化,JSX比Vue的字符串模板也具有更强的表现力。
JSX
render%20()%20{%20%20return%20(%20%20%20%20%20%20%20%20%20%20{this.state.list.map((item,%20idx)%20=>%20(%20%20%20%20%20%20%20%20 %20%20)}复制代码{item} %20%20%20%20%20%20))}%20%20%20%20
小程序模板
<view%20class="index">%20%20<view%20wx:key={idx}%20wx:for="{{list}}"%20wx:for-item="item"%20wx:for-index="idx">{{item}}view>%20%20<view%20bindtap="func">方法view>view>复制代码
%20%20%20JSX%20其实本质上就是%20JS,我们可以在里面写任意的逻辑代码,这样一来就比字符串模板的表现力与操作性要强多了,况且,小程序的字符串模板功能比较羸弱,只有一些比较基本的功能。
%20%20%20Taro有着和React完全一致的API和组件化系统。在%20Taro%20中,不用像原生小程序一样区分什么是%20App%20组件,什么是%20Page%20组件,什么是%20Component%20组件,Taro%20全都是%20Component%20组件,并且和%20React%20的生命周期几乎完全一致。
%20%20%20Taro%20和%20React%20一样,同样使用声明式的%20JSX%20语法。相比起字符串的模板语法,JSX%20在处理精细复杂需求的时候会更得心应手,示例代码如下:
Taro的其他几项优点:
具备良好的开发效率和体验:编辑器对Taro的支持和React几乎是一样的。
类型安全和运行时检测:可以使用TypeScript或Flow来对代码的可靠性进一步增强。
高效的自动补全和 ES6+ 语法:Taro 的所有 API(包括微信小程序等端能力接口)都有智能的提醒和自动补全,包括接口的参数和返回值。
技术选型与权衡
小程序社区已经有多个优秀的框架以小程序为核心对多端适配进行了探索,我们将各个开发框架的主要特点和特性进行了对比并制成图表。大家可以结合团队技术栈、技术需求以及框架特点、特性进行选型和权衡。
在后续文章中,会带大家一起用Taro框架来实战开发小程序。