📜  Angular与React

📅  最后修改于: 2020-12-16 10:01:17             🧑  作者: Mango

Angular vs React

Angular和React都与JavaScript有关,但是它们之间有很多区别。在这里,我们将对它们进行比较,并说明它们的相似性,差异,优点和缺点等。

Comparison Index Angular React
History Angular is a TypeScript based JavaScript framework. It is written in TypeScript. Angular is developed and maintained by Google and known as a “Superheroic JavaScript MVWFramework“. Angular is a complete rewrite of AngularJS. AngularJS was released in 2010 and it takes almost 6 years to release its second version Angular 2 (a complete rewrite). The latest version of Angular is Angular 8 now. Google AdWords which is one of the important project of Google uses Angular, so it is going to be big in upcoming years. React is not a framework. It is a JavaScript library developed and maintained by Facebook and described as “a JavaScript library for building user interfaces. React was released in 2013 and after that it is being used at Facebook.
Architecture Angular is a full MVC (Model, View, and Controller) framework.
Angular is considered a framework because it provides strong facilities like how to structure your application. In Angular, you don’t need to decide routing libraries.
Most prominent features of Angular:
  • Provides templates, based on an extended version of HTML.
  • Provides XSS protection.
  • Provides Dependency injection.
  • Provides Ajax requests by @angular/HTTP.
  • @angular/router for Routing.
  • Component CSS encapsulation.
  • Utilities for unit-testing components.
  • @angular/forms for building forms.
React is a simple JavaScript library (just the View) but it gives you much more freedom. React facilitates you to choose your own libraries.
Most prominent features of React:
  • React uses JSX, an XML-like language built on top of JavaScript instead of classic templates.
  • XSS protection.
  • No dependency injection.
  • Fetch for Ajax requests.
  • Utilities for unit-testing components.

React also provides some popular libraries to add functionalities:

  • React-router for routing.
  • Redux or MobX for state management.
  • Enzyme for additional testing utilities.
Used DOM Angular uses regular DOM. The regular DOM updates the entire tree structure of HTML tags. It doesn’t make difference in a simple real app but if you are dealing with large amount of data requests on the same page (and the HTML block is replaced for every page request), it affects the performance as well as the user’s experience. React uses virtual DOM which makes it amazing fast. It was said the most prominent feature of React when it was released.
It updates only the specific part within a block of HTML codes. The virtual DOM looks only at the differences between the previous and current HTML and changes only that part which is required to be updated.
Used Templates Angular uses enhanced HTML templates with Angular directives i.e. “ng-if” or “ng-for” etc. It is quite difficult because you have to learn its specific syntax. React uses UI templates and inline JavaScript logic together which was not done by any company before. This is called JSX. React uses component which contains both the markup AND logic in the same file. React also uses an XML-like language which facilitates developers to write markup directly in their JavaScript code. JSX is a big advantage for development, because you have everything in one place, and code completion and compile-time checks work better.
Data Binding Angular provides two-way data binding. When you change the model state, then the UI element changes. In Angular, if you change the UI element, then the corresponding model state changes as well. Additionally, if you change the model state, then the UI element changes. React provides one-way data binding. In React first the model state is updated, and then it renders the change in the UI element. When you change the UI element, the model state does not change.
TypeScript vs JavaScript Angular is written in TypeScript, so you must be comfortable with TypeScript before using Angular. React uses JavaScript which is a dynamically-typed language, so you don’t have to define the variable’s type. It makes it easy to use.
Scalability Angular is easy to scale. React is more scalable than Angular.
Speed Angular is fast as compared to old technologies but React is faster than Angular. React is faster than Angular.
Size The size of Angular is large, so it takes longer load time and performance on mobile. The size of React is smaller than Angular, so it is a little bit faster.
Company Using
  • Google
  • Nike
  • Forbes
  • Upwork
  • General Motors
  • HBO
  • Sony etc.
  • Facebook
  • Airbnb
  • Uber
  • Netflix
  • Instagram
  • WhatsApp
  • Dropbox etc.

相似之处

  • Angular和React均已获得MIT许可。
  • Angular和React都是基于组件的。