现在前端,都往大前端方向发展,pc, wapApp, 小程序,混合开发,桌面开发,node 后台。不光发展方向多,同一个方向的技术选型也同样多,比如wapApp的 vue,react,angular。那么问题来了,在项目中,我们到底应该如何展开我们的技术选型呢,我就结合我的经历讲一讲。

所在项目组的技术原型

为什么会有这个选型

1.pc

pc端我们要做推广,我当时考虑单页应用SEO不好做,而且页面几乎没有数据交互,不要为了单页应用而单页应用, 但是考虑到静态应用代码不能复用,就想到用 node模板引擎直接渲染。 访问速度应该还快一点(没做考究).

2.h5

h5, 我们已经有两个h5的项目,一个 vue ,一个 react。 但是最终还是选择 vue ,react 的包比较大,不利于前端快速加载,vue 相比于 react(dva 那一套) 的出活率高。而且国内vue确实火,小程序和混合开发相对应的解决方案都有,那么,就是他了。

3.小程序

小程序之前用原生的写过一个,用原生写不利于维护,感觉有点乱,就在两个 star 数高的、大公司维护的里面选 wepy 和 mpvue,mpvue 能生成对应的 wapAPP,并且合适 vue 的技术栈.在合适不过了。

4.混合开发

我们项目组是有安卓和ios的,但是有些内容ios 审核麻烦,所以要热更新。现在阶段,性能比较好的混合开发,就是 weex、 rn、 flutter。
1.weex: 阿里巴巴使用再生产环境的,国内比较友好,基于 vue ,性能可以,可以热更
2.rn: 脸书出品,近一年热度下降,基于 react, 性能可以,可以热更
3.flutter: 谷歌开源,基于 dart.js,因为实现方式,性能和体验应该比前两者好,不能热更,因为使用 dart.js 学习成本大
最终: flutter 不能热更 pass(解决不了最重要的需求); rn: 相对来说还是倾向于选择国内的技术,文档好理解,和统一客户端的技术栈(vue) pass。(经过事实践,最终还是选择了react-native,react-native 生态比weex好挺多,方案也更加成熟,开发体验比weex好的多,比如weex不能加载本地图片,react-native是允许的。)

5.node 框架

本人喜欢企业级的框架,特别是公司项目中,约定优于配置,降低维护成本,选择阿里 egg

6.管理后台

管理后台数据太多了,目前应该有100多个接口,vue 维护是个问题,而且阿里 ant design pro 很好用,就它了。

总结:

1.技术都是服务产品的,应该通过产品需求去选择技术
2.选择技术、要考虑社区活跃度,维护团队、文档、招聘相关人员是否容易等
3.尽量用少的技术栈去实现多的业务,降低人工成本