AngularJS和ReactJS之间的主要区别是什么?

11

我需要创建一个网站,该网站将被转换为移动应用程序(我想要构建的更适合作为网站,而不是应用程序,因此构建本身应该像网站一样进行)。

由于我更熟悉桌面和Android本地开发领域,对Web客户端开发知之甚少。阅读了一些资料后,我决定在客户端使用以下技术:HTML5、CSS3、Bootstrap、React.js。

问题在于,我已经了解到Angular实际上是一个完整的MVC框架,而React具有一些更专业的角色,就像把车(Angular)和发动机(React)进行比较。我已经看过关于如何使用这两种技术来执行某些操作的比较,例如hello world和事件处理等方面,所以我不需要知道类似比较网站中展示的具体操作。

那么我的问题是,使用Angular和React有什么区别?如果我使用React,会有一些无法实现的功能吗?在什么情况下应该使用其中之一?如果我使用React,是否仍然能够构建完全可操作的客户端?

我想强调的是,我不想听个人意见。我只想了解客户端开发的事实,并知道我可以做什么和不能做什么。


2
相当多的事情... - user3117575
我不需要为每个函数都进行比较。只是就一般情况而言,Angular仍然被称为“完整框架”,而React则没有。 - CodeMonkey
你期望什么样的答案?汽车与发动机是不可比较的。 - charlietfl
@charlietfl 没错。这就是为什么我想知道我可以用一个做什么,而不能用另一个做什么。如果Angular是如此完整的框架,那么如果我使用React,肯定会错过几件事情。 - CodeMonkey
5
点赞,因为我理解问题的意图并且经历过类似的情况。在stackoverflow上有很多相似的问题都得到了很多点赞。不过,考虑到这个网站的情况,你可能会收到很多傲慢的反对态度,因为这样的问题已经被问烂了。 - temporary_user_name
显示剩余2条评论
2个回答

5
AngularJS是一个完整的框架,正如你所说,它旨在使用MVC设计编写单页面应用程序(SPA)。 另一方面,ReactJS被认为只适用于开发视图,或者换句话说,UI组件。 我认为Angular相对较难学习,而React是一个相对较小的库,但由于其虚拟DOM,React速度更快(除非需要,它不会直接操作DOM)。 此外,React可以与其他库一起使用,例如路由,而Angular已经拥有这些功能。 我认为你可以使用这两种技术构建相同的网站,即使React是针对UI的,它仍然可以具有逻辑,并且大型网站也可以用它来构建(例如Instagram和Facebook)。

1
你的回答让我想到我可以同时使用ReactJS和AngularJS。这是可能的吗?你说React是用于UI元素,而Angular是一个完整的框架。我对React一无所知,但这让我想知道是否可以使用React构建Angular指令以制作更好的Web组件。 - Marco Aurélio Deleu
1
当说“React仅用于视图”时,谁来处理模型和控制器? - CodeMonkey
是的,你可以将它们结合在一起,但我建议你选择其中一个,因为你需要做一些额外的工作来结合这两个框架。关于模型和控制器部分,我忘了提到React是为Flux开发设计的。这意味着,与其使用双向绑定,你总是有一个从调度程序到子组件的数据流。任何组件都可以注册并触发事件上的函数。React不需要模型和控制器,因为它是开发SPA应用程序的不同方法。 - user5692355
如果你想使用React作为前端,我建议你在后端使用一个flux框架,比如Redux。此外,回答你的问题,React是一个UI库,而AngularJS则是一个框架。对于小型应用程序,ReactJS可以直接使用。但对于大型应用程序,我一定会将其与Redux或类似的工具配对使用。 - Shruti Kapoor
对于React中的每个自包含组件,您将在组件本身内部管理状态,而要管理应用程序状态,则可以使用像Redux这样的框架。 - Pratik Singhal

3

但是由于Angular是一个完整的框架,而React不是,因此仍然有一些区别。 - CodeMonkey
3
虽然 Angular 在管理和更新 DOM 方面表现很好,但它可能会变得缓慢。React 则专注于对具有大量数据的元素进行极快速且频繁的更新。 - n1kkou
但是也许Angular会有一些React没有的能力呢?(尽管它被称为“完整框架”)。 - CodeMonkey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接