Javascript框架的开发速度非常快,这意味着今天我们经常更新Angular、React和另一个参与者Vue.js的版本。
我们分析了全球需要特定框架知识的开放职位数量。作为消息来源,我们采用Indeed.com并根据超过60,000个工作机会获得以下分配。
考虑到以下数据,我们决定分享每个前端框架的主要优点和缺点,并帮助技术专业人员或工程师根据他们的开发需求选择最合适的框架。
Angular的利弊
Angular是一个超级棒的JavaScriptMVVM框架,成立于2009年,非常适合构建高度交互的Web应用程序。
Angular的好处:
- 创建的Angular与Typescript一起使用。并且对它有特殊的支持。
- Angular-language-service- 允许在组件外部HTML模板文件中进行智能和自动完成。
- 新功能,例如来自CLI的一代基于Angular的npm库,基于Angular的WebComponents的生成和开发。
- 详细的文档,允许为个人开发人员获取所有必要的信息,而无需询问他的同事。但是,这需要更多的时间进行学习。
- 单向数据绑定,可为应用程序启用单一行为,从而最大限度地降低可能出错的风险。
- MVVM(Model-View-ViewModel),允许开发人员使用同一组数据在同一个应用程序部分上单独工作。
- 通常使用模块和模块化依赖注入与组件相关的功能。
- 专为最佳项目可扩展性而创建的结构和体系结构
Angular的缺点:
- 与React和Vue.js相比,各种不同的结构(注射器,组件,管道,模块等)使得学习起来有点困难,React和Vue.js只考虑了“组件”。
- 根据不同的基准测试,性能相对较慢。另一方面,它可以通过利用所谓的“ChangeDetectionStrategy”轻松解决,它有助于手动控制组件的渲染过程。
React的利弊
React于2013年由Facebook开源,非常适合构建任何规模的现代单页应用程序。
React的好处:
- 由于其简单的设计,使用JSX(类似HTML的语法)进行模板化和高度详细的文档,因此易于学习。
- 开发人员花费更多时间编写现代JavaScript,而不必担心特定于框架的代码。
- 非常快,礼貌的React的虚拟DOM实现和各种渲染优化。
- 对服务器端呈现的强大支持,使其成为面向内容的应用程序的强大框架。
- 借助`create-react-app`应用程序生成器,支持一流的渐进式Web应用程序(PWA)。
- 数据绑定是单向的,意味着更少的不必要的副作用。
- Redux是在React中管理应用程序状态的最流行的框架,易于学习和掌握。
- React实现了功能编程(FP)概念,创建了易于测试和高度可重用的代码。
- 使用Microsoft的TypeScript或Facebook的Flow可以使应用程序类型安全,两者都具有对JSX的本机支持。
- 在版本之间迁移通常非常容易,Facebook提供“codemods”来自动化大部分过程。
- 在React中学到的技能可以(通常直接)应用于React Native开发。
React的缺点:
- React是不受干扰的,让开发人员可以选择最好的开发方式。这可以通过强有力的项目领导和良好的流程来解决。
- 社区在React中编写CSS的最佳方式上有所区别,在传统样式表(CSS模块)和CSS-in-JS(即Emotion和StyledComponents)之间进行划分。
- React正逐渐远离基于类的组件,这可能成为开发人员更容易使用面向对象编程(OOP)的障碍。
- 最初将模板与逻辑混合(JSX)可能会让一些开发人员感到困惑。
Vue.js的优点和缺点
Vue.js于2013年推出,非常适合创建高适应性的用户界面和复杂的单页面应用程序。
Vue.js的好处:
- 赋予HTML权力。这意味着Vue.js与Angular有许多相似的特性,这有助于通过使用不同的组件来优化HTML块处理。
- 详细文档。Vue.js具有非常周密的文档,可以为开发人员设置学习曲线,并且仅使用HTML和JavaScript的基本知识就可以节省大量时间来开发应用程序。
- 适应性强。它提供了从其他框架到Vue.js的快速切换周期,因为它在设计和架构方面与Angular和React相似。
- 很棒的整合。Vue.js可用于构建单页面应用程序和更困难的应用程序Web界面。主要的是,较小的交互式部件可以轻松集成到现有基础设施中,而不会对整个系统产生负面影响。
- 大规模。Vue.js可以帮助开发相当大的可重用模板,根据其简单的结构,可以在没有为其分配额外时间的情况下制作模板。
- 小巧的尺寸。Vue.js的重量可以保持在20KB左右,保持其速度和灵活性,与其他框架相比,可以实现更好的性能。
Vue.js的缺点:
缺乏资源。与React或Angular相比,Vue.js的市场份额仍然很小,这意味着该框架中的知识共享仍处于起步阶段。
过度灵活的风险。有时,Vue.js在整合到大型项目时可能会遇到问题,但仍然没有可能的解决方案经验,但它们肯定会很快到来。
结论
对于真正的工程师来说,选择哪个框架没有太大的区别,因为它只需要一些时间来适应新的框架。在我们公司,我们在React和Angular中积累了大量专业知识,但Vue.js也在其中。每个框架都有自己的优点和缺点,这意味着在产品开发过程中每个案例都应该有正确的选择。
原文:https://medium.com/@TechMagic/reactjs-vs-angular5-vs-vue-js-what-to-choose-in-2018-b91e028fa91d