Angularjs срещу Angular2 | каква е разликата?

AngularJS

Поглеждайки назад, имаше възможност за създаване на много усъвършенствани уеб приложения с помощта на чистия JavaScript API, но наистина беше трудно да се поддържа първоначалната кодова база и да се тества всичко. И тогава през 2010 г. AngularJS беше представен като JavaScript MVW Framework. Имаше големи предимства на дървото, които накараха хората да го обичат:

  • Производството на кодове беше несравнимо бързо
  • Всяко приложение беше лесно пробвано
  • Google стои зад проекта

Има и други неща, които правят Angular толкова добър за програмистите. Първият е двупосочно обвързване на данни. Ъгловата ви позволи да видите данни, променени в JavaScript, за да бъдат отразени автоматично в потребителския интерфейс. Това направи нещата много по-лесни за развитие в началото, тъй като не се изисква повече кодиране, освен за свързване на подходящ контролер към частта на HTML. Второто предимство, което Angular носи на програмистите, са директиви. Те са отправна точка за всички компоненти, които виждаме сега в съвременния преден край. Директивите позволиха на кода да бъде много по-използван и отделен от всякога. AngularJS наложи инжектиране на зависимост и това помогна в подиграването на зависимостите. Появата му в рамката направи Angular огромна крачка напред в случай на тестване на front-end приложения.

Всички тези предимства накараха все повече компании да пренаписват своите приложения от собствените си решения, изградени върху други библиотеки на AngularJS.

Ъглова 2

AngularJS е чудесен начин за стартиране на приложение или MVP. С нарастваща популярност и все повече и повече функции, идващи в основата, екипът на Angular реши да пренапише оригиналната рамка, въвеждайки Angular 2. Някои казват, че Angular 2 и AngularJS споделят само едно нещо: името. Има път на миграция (наречен ng-upgrade) от AngularJS към Angular 2. Въпреки това, Angular 2 все още е съвсем нова рамка, споделяща само някои концепции на своя предшественик.

Цялата концепция на структурата на приложенията се промени в Angular 2. Преди това MVC рамката ви позволи да създавате приложения по образец на доста плътно свързани съединения като контролери, изгледи, услуги и т.н. Цялата архитектура на AngularJS изглеждаше така:

img - ng1 архитектура

Сега концепцията за директивите беше изтласкана по-нататък, за да бъде много по-близка до стандарта на Web Components и начина на React за структуриране на приложението. Всичко е за компоненти в Angular 2. Това означава, че цялото приложение вече е компонент, който съдържа друг набор от компоненти (които могат да бъдат маршрутизирани). Завършва със структура, наподобяваща дърво:

img - ng2 архитектура

Целта на архитектурата на приложението Angular 2 е да създаде компоненти, които не зависят един от друг, които са възможно най-свободно свързани.

Важното е да се въведат два начина за създаване на компонентите:

  • Интелигентни компоненти: Те знаят за състоянието на приложението и могат да комуникират със услуги за получаване или промяна на данни.
  • Тъмни компоненти: Те трябва да имат само входове и изходи. Те са готови да бъдат поставени навсякъде в системата (или дори извън нея), когато предоставят правилни стойности на входа и не трябва да знаят за съществуването на състоянието на приложението.

производителност

Наличието на такова дърво от компоненти прави голяма разлика в производителността. Целта на AngularJS не беше да създаде най-ефективната рамка, а вместо това най-лесната за писане. Тъй като производителността стана по-голям проблем, Angular 2 беше въведен за решаване на проблема. AngularJS имаше дайджест цикъл, който позволява промените да задействат актуализации нагоре и надолу. Ъгъл 2, от друга страна, има насочена графика на компоненти, която винаги се проверява веднъж (поради един напречен път от корена към листата). Според членовете на екипа на Angular Core, тези промени направиха приложенията на Angular 2 да работят 3-10 пъти по-бързо от същите приложения, създадени с най-новите AngularJS.

Екосистема

Първоначално публикуван на www.laravelfeed.com.