有些东西变了,其他的也变了。最新的是什么?>图片由作者提供。前端框架的数量之多会让您大吃一惊。框架有很多种:反应式、声明式、函数式、MVC、MVVM、OOP等。但最受欢迎的仍然是React和Angular。截至2020年,它们之间有什么区别?什么是反应?React是Facebook开发并开源的UI库。我要强调的是这里是图书馆。我稍后会解释为什么这很重要。React是目前最流行的UI库,为数以千计的网站提供支持。React使用JavaScript作为其主要语言,可以在包括Web、Android、iOS甚至VR在内的许多平台上运行。什么是角度?Angular是由Google开发并开源的前端框架。马上,您就会发现它们根本不同:React是一个库,而Angular是一个框架。在上一节中,我将解释这两个术语之间的区别。Angular使用TypeScript作为其主要语言,同时也能够在多种平台上运行。Angular的架构使用MVC(模型-视图-控制器)模式,该模式被认为是行业标准之一。那么,React和Angular之间的相似之处是什么?它们有何相似之处?首先,React和Angular都产生相同的可交付成果:前端应用程序,无论是网站、应用程序还是介于两者之间的东西。两者都在底层使用JavaScript并充分利用NPM(节点包管理器),这使得共享重复代码变得非常容易。社区这两种产品背后都有庞大的社区。由于React和Angular是开源的,许多公司都依赖它们并试图保持它们的运行和更新,因此您可以相对安全地使用它们。由于文档不完整、缺乏StackOverflow帮助或第三方库的可用性,您不太可能遇到很多问题。体系结构这两种解决方案都提供了与MVC类似的体系结构,尽管存在一些误解(正如我将在上一节中描述的那样)。此外,Angular和React都允许您使用TypeScript进行开发,但只有React支持纯JavaScript。最后,这两者都是基于组件的,这与其余的UI框架(Vue、Flutter等)非常吻合。它们有何不同?男生。我们还有很多事情要做-我认为这就是您阅读本文的原因。让我们开始吧。库vs框架如前所述,React是一个库,而Angular是一个框架。简而言之,库解决问题,框架解决问题。在大多数情况下,框架由库组成。这实际上意味着什么:React非常轻巧、快速且易于学习,但它本身并没有真正做任何事情(除了绘制一些按钮)。您将需要用于路由、API连接、状态管理等的第三方库。另一方面,Angular有这个库以及更多内置的库。Angular虽然更难学习,但为您提供了不错的功能,例如路由、表单生成、依赖注入等。在MVC中,React只是一部分,而Angular才是整体。在使用常规DOM和虚拟DOM在屏幕上呈现内容时,Angular和React使用的方法略有不同。Angular的行为与您预期的一样:在每次重新渲染时,它都会从头开始构建一个新的DOM并在浏览器中替换它。另一方面,React试图尽可能地重用。它计算将浏览器的DOM带到React的内部虚拟DOM并执行它们所需的最少操作集。这将带来巨大的性能提升,一旦推出并发模式,这一点将更加明显。可扩展性这是Angular的优势之一。由于Angular实现了更复杂的架构,因此更容易扩展。在React中,开发人员承担了太多的责任,而且很容易搞砸。但是,在代码库变得足够大之前,您不会注意到它。当然,这可以通过应用“干净架构”原则来缓解,但您需要意识到这一点。移动开发React曾经是这个部门的明显赢家,但现在已经不那么明显了。ReactNative允许您使用React编写原生应用程序,而NativeScript允许您使用Angular和Vue编写原生应用程序。两者都提供可比的性能和功能集。区别在于平台访问。如果你想在ReactNative中访问一些原生API方法,你必须在Kotlin或Swift中编写一个桥接器。在原生脚本上,您可以直接从JS代码访问原生方法。另一方面,ReactNative拥有更大的社区,这是一项无价的资产。但是,如果性能是重中之重,您应该考虑使用Flutter。结论感谢您的阅读。我希望您现在对React和Angular之间的区别有所了解。如果您有任何问题,请告诉我。
