比较React和Angular2.0,讨论各自的优缺点。ReactJS快速回顾ReactJS是一组由Facebook创建的JavaScript网络库,主要用于构建高性能和响应式用户界面。React负责解决其他JavaScript框架面临的一个共同问题,即大数据集的处理。能够使用虚拟DOM并使用补丁安装机制在发生变化时仅重新渲染DOM的脏部分,React可以实现比其他框架快得多的性能。Angular2满载增强机制与Angular1相比,Angular2迎来了一系列的增强。首先,Angular2非常专注于创建可重用的前端组件。虽然Angular1在一定程度上实现了相同的效果,但较新版本的框架解决了许多可用性痛点,例如对$scope和控制器的依赖。它的指令也得到了显着简化,使Angular2代码比其前身更易于输入和阅读。Angular2还考虑到了与TypeScript配合的需要,省去了很多用于保证类型安全的代码。再加上诸多性能和框架的改进,Angular2确实给人耳目一新的感觉。警告值得强调的是,React和Angular(任一版本)之间的比较并不真正相等。Angular是一组前端框架,负责为应用程序客户端提供完整的架构,并允许我们将客户端代码用作功能强大的套件。另一方面,React是一组不提供很多功能的库——它的主要作用是作为一个完整项目的组成部分,而不是主导整个代码结构。当然,两者之间有相当程度的相似性,这也是存在这种比较的原因。架构如上所述,React是一组用于创建响应式模板的JavaScript库。因此,React并不真正关心架构——它更像是一个在应用程序内的大型客户端代码中工作的工具。另一方面,Angular2使用框架的角色来指示前端代码的“正确设计”。它关注组件和类型安全,让大家关注代码本身,在强调可重用性和封装性的同时建立面向对象的前端。从这一点来看,React和Angular2真的没有可比性——React适合那些希望以更灵活的方式构建代码架构的人,而Angular2属于应用程序前端的整体架构选项。因此,谁能更好地适应应用程序设计模式的需求,谁就会在这个环节获胜。模板两种解决方案都提供了模板工具,但使用的模板管理方式却大相径庭。React基于JSX构建模板对象。您可以构建内联模板并集中存储所有模板代码。Angular2在物理上将驱动应用程序的JavaScript与呈现的HTML分开。但是,由于它更注重组件化,并且可以与TypeScript顺畅地工作,因此您通常可以使用Angular1.x实现更好的可重用性和灵活性。总而言之,在选择了理想的模式之后,具体的选择将由美学和基本功能来决定——React模板更紧凑,渲染速度更快,而Angular2组件的可重用性更高,通过无处不在的双向数据绑定简化了应用程序对象管理过程。原生支持Angular2和React有不同的底层目标,这意味着两者在支持原生设备代码时的行为非常不同。Angular2团队决定专注于框架本身,而将设备可运行代码留给其他供应商。React生态系统推出了ReactNative——一个将React代码转化为原生应用程序体验的框架,从而带来远超传统混合Web应用程序的性能。同样,选择“正确”的选项是理想的思维方式。如果您希望您的移动应用体验快如闪电,那么React绝对胜出。但如果你想采用更加组件化的应用架构,并且愿意牺牲一些性能来提高代码结构的一致性,那么Angular2与Ionic等框架的结合将是正确的答案。总而言之,Angular2和React之间的选择实际上只是一种风格偏好。React专注于渲染速度,可以在客户端或本机应用程序中处理复杂的UI设计,而Angular2更适合开发。它不仅可以指导我们一步一步构建自己的应用程序,还提供了一定的表现力和可重用的UI设计机制。最终决定取决于应用程序的设计目标和开发团队的普遍意见。庞大复杂的用户界面和出色的性能是React的王牌,而开发流程和代码结构是Angular2的主场。总之,只要能充分考虑实际需求和定位,大家就能做出正确的选择。原标题:Angular2vs.React
