背景: 在接收一个新项目的时候,我们常常面临着技术选型
通常从以下4个维度去考虑:
- 前端框架和脚手架
- 状态管理工具
- 路由管理工具
- 代码构建和编译工具
技术选型的影响因素
如果是从头开始搭建前端项目,那么我们首先要思考几个问题:
- 项目规模如何, 功能交互是否复杂, 面向哪些用户
轻量级项目可能React/Vue比较灵活, 大型项目还可以使用Angular全家桶
- 是否存在多人协作, 团队规模大概是怎样的
存在多人协作需要考虑完善团队规范, 同时尽量使用工具来保证流程规范
- 团队成员技术栈如何?对新技术的接受程度怎样?
- 是否有现有的技术方案可以参考, 是否需要进行调整?
如果使用现成的技术方案和项目案例,可以考虑是否符合实际需要,使用团队成员熟练的工具可以避免很多踩坑的过程。
| 框架 | 优势 | 不足 |
|---|---|---|
| Vue | 对新人友好、文档和社区完善,框架库轻量,可灵活搭配各种工具进行开发,官方也提供完整的全家桶解决方案 | 如指令和语法糖有一定的概念门槛, 对于大型复杂项目,需要自行搭配其他配套工具来解决 |
| React | 概念较少、对前端编码侵入性较少,开发者只需要掌握Javascript便可实现大多数功能,框架库轻量, 可灵活搭配各种状态管理工具,脚手架等进行开发 | 对大型复杂项目,需要自行搭配其他配套工具来解决 |
| Angular | 提供完整的开发规范和解决方案,解决了多人协作、大型应用的痛点 | 对于大型复杂项目设计,解决方案大而全而导致相对笨重设计和使用的概念很多(如依赖注入/注入器/令牌/指令/模块化/AOT等),入门成本较大 |