工作这么多年,在项目中用过 jQuery / React / Vue ,本人对前端各大框架的优劣也略有感触
在我看来一个越大,越复杂,参与人员越多的项目前期的框架选型愈加重要
如果是个人的小项目的话可以随着自己的喜好,更多的去尝试新的东西
从开发者角度考虑
- 开发人员是否有相应框架的使用经验,当然优先考虑大家都熟悉的框架
- 如果没有相应经验,框架的学习成本如何,例如后端程序员学习 Angular + TypeScript 是否会更快一点呢
- 同一团队的成员对该框架是否认可,是否愿意去学习
从项目的需求考虑
- 是否有兼容性上面的考虑,需要兼容旧版 IE 的话可能要考虑下 jQuery
- 是否有跨终端的需求,有的话 ReactNative 或者 Flutter 会是个好选择
- 项目的规模如何,一个功能不多需要快速上线的项目或者简单的活动页没必要使用 React / Vue / Angular
- 如果是一个有着长期规划的大型项目,我们是不是应该一开始就考虑加入 Lint / Mock / 自动化测试 / 前端强类型校验(TypeScript / Flow) 等等
- 是否要支持移动端,相对来说移动端对性能有着更高的要求
- 是否要考虑网络环境不佳的情况,这样框架的大小就是一个很关键的因素
- 框架能否很好的支持项目的需求,例如想做一个单页应用就要考虑到框架有没有相应的 Router 支持
从框架本身考虑
- 社区是否活跃,更新是否频繁,避免遇到发现问题无处寻求帮助的尴尬
- 文档是否完善,好的文档能让你更快上手,例如 Webpack 的文档我就觉得比较晦涩难懂
- API 是否友好,说通俗点就是写起来顺不顺手
- 框架生态如何,有没有很多现成的工具可以拿来使用
- 会相关框架的开发者多不多,这关系到能否快速招到合适的人选
总结
一切框架选型最关键的地方在于能否提升项目的可维护性以及开发效率
只要能做到这俩点,在我看来就是一个好框架