现在前端,都往大前端方向发展,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。
5.node 框架
本人喜欢企业级的框架,特别是公司项目中,约定优于配置,降低维护成本,选择阿里 egg
6. 管理后台
管理后台数据太多了,目前应该有 100 多个接口,vue 维护是个问题,而且阿里 ant design pro 很好用,就它了。
总结:
1. 技术都是服务产品的,应该通过产品需求去选择技术 2. 选择技术、要考虑社区活跃度,维护团队、文档、招聘相关人员是否容易等 3. 尽量用少的技术栈去实现多的业务,降低人工成本 4. 在公司项目中,尽量用企业级、大而全的框架 (针对这一点,下次另开一篇,为什么我不用 大而全的 angular, 却用了渐进式的 vue?都有什么利弊?)