比较索引 | Angular | React |
---|
历史 | Angular 是一个基于 TypeScript 的 JavaScript 框架。它用 TypeScript 编写。 Angular 由 Google 开发和维护,被称为 "超级英雄 JavaScript MVW 框架"。 Angular 是 AngularJS 的完全重写。 AngularJS 发布于 2010 年,大约花了 6 年时间才发布其第二个版本 Angular 2(完全重写)。 Angular 的最新版本是 Angular 8。 Google AdWords 是 Google 的一个重要项目,它使用 Angular,因此它在未来几年将变得很重要。 | React 不是一个框架。它是一个 JavaScript 库,由 Facebook 开发和维护,被称为 "用于构建用户界面的 JavaScript 库"。 React 发布于 2013 年,此后被 Facebook 使用。 |
架构 | Angular 是一个完整的 MVC(模型、视图和控制器)框架。 Angular 被认为是一个框架,因为它提供了强大的功能,例如如何构建您的应用程序。在 Angular 中,您不需要决定路由库。 Angular 最突出的特点- 提供基于 HTML 扩展版本的模板。
- 提供 XSS 保护。
- 提供依赖注入。
- 通过 @angular/HTTP 提供 Ajax 请求。
- 用于路由的 @angular/router。
- 组件 CSS 封装。
- 用于单元测试组件的实用程序。
- 用于构建表单的 @angular/forms。
| React 是一个简单的 JavaScript 库(仅视图),但它为您提供了更多自由。React 方便您选择自己的库。 React 最突出的特点- React 使用 JSX,一种基于 JavaScript 之上的类似 XML 的语言,而不是经典模板。
- XSS 保护。
- 没有依赖注入。
- 用于 Ajax 请求的 Fetch。
- 用于单元测试组件的实用程序。
React 还提供了一些流行的库来添加功能- 用于路由的 React-router。
- 用于状态管理的 Redux 或 MobX。
- 用于附加测试工具的 Enzyme。
|
使用 DOM | Angular 使用 常规 DOM。 常规 DOM 会更新 HTML 标签的整个树结构。 在一个简单的真实应用程序中,它没有区别,但是如果您处理同一页面上的大量数据请求(并且每次页面请求都会替换 HTML 块),则它会影响性能以及用户的体验。 | React 使用 虚拟 DOM,这使得它 惊人地快。 当 React 发布时,它被称为 React 最突出的功能。 它仅更新 HTML 代码块内的特定部分。 虚拟 DOM 仅查看先前 HTML 和当前 HTML 之间的差异,并仅更改需要更新的部分。 |
使用模板 | Angular 使用带有 Angular 指令的增强 HTML 模板,即 "ng-if" 或 "ng-for" 等。 这很困难,因为您必须学习其特定语法。 | React 将 UI 模板和内联 JavaScript 逻辑结合在一起,这是任何公司以前从未做过的。 这称为 JSX。 React 使用组件,该组件在同一文件中同时包含标记和逻辑。 React 还使用一种类似 XML 的语言,这使得开发人员可以直接在 JavaScript 代码中编写标记。 JSX 对于开发来说是一个很大的优势,因为您将所有内容都放在一个地方,并且代码完成和编译时检查效果更好。 |
数据绑定 | Angular 提供双向数据绑定。 当您更改模型状态时,UI 元素会更改。 在 Angular 中,如果更改 UI 元素,则相应的模型状态也会更改。 此外,如果更改模型状态,则 UI 元素也会更改。 | React 提供单向数据绑定。 在 React 中,首先更新模型状态,然后它在 UI 元素中呈现更改。 当您更改 UI 元素时,模型状态不会更改。 |
TypeScript vs JavaScript | Angular 用 TypeScript 编写,因此在使用 Angular 之前,您必须熟悉 TypeScript。 | React 使用 JavaScript,这是一种动态类型语言,因此您不必定义变量的类型。 这使其易于使用。 |
可扩展性 | Angular 易于扩展。 | React 比 Angular 更具可扩展性。 |
速度 | 与旧技术相比,Angular 速度快,但 React 比 Angular 快。 | React 比 Angular 快。 |
大小 | Angular 的大小很大,因此它需要更长的加载时间以及在移动设备上的性能。 | React 的大小小于 Angular,因此它稍微快一点。 |
使用公司 | - Google
- 耐克
- 福布斯
- Upwork
- 通用汽车
- HBO
- 索尼等。
| - Facebook
- Airbnb
- 优步
- Netflix
- Instagram
- WhatsApp
- Dropbox 等。
|