AngularJS

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 4 maj 2022; kontroller kräver 5 redigeringar .
AngularJS
Sorts ramverk , JavaScript- bibliotek och funktionsbibliotek
Utvecklaren Google
Skrivet i JavaScript [1]
Första upplagan 20 oktober 2010
Hårdvaruplattform webbplattform
senaste versionen
Licens MIT-licens [4] [5]
Hemsida angularjs.org
 Mediafiler på Wikimedia Commons

AngularJS  är ett JavaScript- ramverk med öppen källkod . Designad för att utveckla ensidiga applikationer [6] . Dess mål är att utöka webbläsarapplikationer baserade på MVC- mönstret, samt att förenkla testning och utveckling.

Ramverket fungerar med HTML som innehåller ytterligare anpassade attribut, som beskrivs av direktiv, och binder in- eller utdata från sidområdet till en modell som är vanliga JavaScript-variabler. Värdena för dessa variabler ställs in manuellt eller hämtas från statisk eller dynamisk JSON-data.

Utvecklingshistorik

AngularJS utvecklades 2009 av Misko Heveri och Adam Abrons på Brat Tech LLC som programvaran bakom en megabyte JSON -lagringstjänst för att underlätta utveckling av företagsapplikationer. Tjänsten var värd på "GetAngular.com"-domänen och hade flera registrerade användare innan de bestämde sig för att överge affärsidén och släppa Angular som ett bibliotek med öppen källkod.

Abrons lämnade projektet, men Heveri, som arbetar på Google , fortsatte att utveckla och underhålla biblioteket tillsammans med andra Googlers Igor Minar och Voita Jin.

I mars 2014 tillkännagavs utvecklingen av AngularJS 2.0 [7] . Den nya versionen skrevs från grunden i TypeScript och skilde sig mycket från den tidigare, så det beslutades senare att utveckla den som ett separat ramverk som heter Angular . Angular 2 släpptes den 15 september 2016 [8] , medan den första versionen fortsatte att utvecklas separat som AngularJS.

I april 2022, med lanseringen av den senaste versionen 1.8.3, avbröts stödet för AngularJS officiellt. [9]

Philosophy of Angular

AngularJS är designad med tron ​​att deklarativ programmering är bäst för att bygga användargränssnitt och beskriva programvarukomponenter [10] , medan imperativ programmering är utmärkt för att beskriva affärslogik [11] . Ramverket anpassar och utökar traditionell HTML för att tillhandahålla tvåvägsdatabindning för dynamiskt innehåll, vilket gör att modell och vy automatiskt synkroniseras. Som ett resultat minskar AngularJS rollen av DOM-manipulation och förbättrar testbarheten.

Utvecklingsmål

Angular följer MVC-designmönstret och uppmuntrar lös koppling mellan presentation, data och komponentlogik. Med hjälp av beroendeinjektion tar Angular klassiska server-side-tjänster som vyberoende kontroller till klientsidan. Följaktligen minskar belastningen på servern och webbapplikationen blir lättare.

Populära inbyggda Angular-direktiv

Med AngularJS-direktiv kan du skapa anpassade HTML-taggar och attribut för att lägga till beteende till vissa element. [fjorton]

ng-app Deklarerar elementet som rotelement för applikationen. [femton] ng-binda Ersätter automatiskt texten i ett HTML-element med värdet för det skickade uttrycket. ng-modell Samma som ng-bind, ger endast tvåvägs databindning. [16] Innehållet i elementet kommer att ändras - vinkel kommer också att ändra värdet på modellen. Modellens värde kommer att ändras - vinkel kommer att ändra texten inuti elementet. ng-klass Definierar klasser för dynamisk laddning. ng-kontroller Definierar en JavaScript-kontroller för att utvärdera HTML-uttryck enligt MVC. [17] ng-upprepa Skapar en DOM-instans för varje element i samlingen. [arton] ng-show och ng-hide Visar eller döljer elementet, beroende på värdet på det booleska uttrycket. ng-switch Skapar en instans av en mall från en uppsättning alternativ, beroende på uttryckets värde. ng-vy Basdirektivet ansvarar för att hantera rutter [19] som accepterar JSON innan mallar renderas som drivs av de angivna kontrollerna. ng-om Tar bort eller skapar en del av DOM-trädet beroende på värdet på ett uttryck. Om värdet på uttrycket som tilldelats ngIf är falskt tas elementet bort från DOM, annars infogas det nyklonade elementet i DOM. [tjugo]

Det är också möjligt att skapa anpassade direktiv, inklusive att använda mallar i skripttaggen. [21] [22]

Dubbelriktad databindning

Tvåvägsdatabindning i AngularJS är den mest anmärkningsvärda egenskapen: den minskar mängden kod genom att befria servern från att hantera mallar. Istället renderas mallar som vanlig HTML, fyllda med data som finns inom ett omfång som definieras i modellen. Tjänsten $scopei Angular bevakar förändringar i modellen och ändrar HTML-uttrycksdelen av vyn genom kontrollern. Alla ändringar av vyn återspeglas också i modellen. Detta kringgår behovet av DOM-manipulation och underlättar webbapplikationsinitiering och prototyper [23] .

Plugin för Chrome

I juli 2012 släppte Angular-teamet ett plugin för webbläsaren Google Chrome som heter Batarang [24] som gör det lättare att felsöka webbapplikationer byggda på Angular. Tillägget gör det enkelt att upptäcka flaskhalsar och erbjuder ett grafiskt gränssnitt för felsökning av applikationer [25] .

Jämförelse med Backbone.js

Backbone.js  , ett JavaScript - bibliotek baserat på designmönstret Model-View-Presenter (MVP), har liknande möjligheter för att utveckla webbapplikationer med stöd för ett RESTful JSON -gränssnitt. Backbone är ett mycket lätt bibliotek (komprimerat och gzip-komprimerat i storlek ~6,3 KB), men det kräver att Underscore.js- biblioteket fungerar , och för att stödja REST API och arbeta med DOM-element, rekommenderas det att inkludera en jQuery- som bibliotek: jQuery eller Zepto. Backbone.js skapades av Jeremy Ashkenas , som också är känd som skaparen av CoffeeScript .

Men det finns också betydande skillnader:

Databindning Den mest framträdande egenskapen som skiljer biblioteken åt är hur modellen och vyn är synkroniserade. Medan AngularJS stöder tvåvägsdatabindning, förlitar sig Backbone.js starkt på boilerplate-kod för att binda modell och vy [26] . RESTEN Backbone.js stöder RESTful backend väl. Det är också väldigt enkelt att arbeta med RESTful API:er i AngularJS med hjälp av tjänsten $resource. Samtidigt har AngularJS en mer flexibel $http-tjänst som ansluter till fjärrservrar med hjälp av webbläsarens XMLHttpRequest -objekt eller via JSONP [27] . Mallar AngularJS använder en kombination av anpassade HTML-taggar och uttryck som en mall [28] . Backbone.js använder olika mallmotorer som Underscore.js [26] .

Se även

Anteckningar

  1. angularjs Open Source Project på Open Hub: Languages-sidan - 2006.
  2. Release 1.8.3 - 2022.
  3. 1.8.3 ultimata-farväl (2022-04-07)
  4. angular.js/LICENSE på master angular/angular.js GitHub
  5. angularjs Open Source Project på Open Hub: Licenses-sida - 2006.
  6. Single Page Application med AngularJs. Handledning . Tillträdesdatum: 6 november 2016. Arkiverad från originalet 7 november 2016.
  7. AngularJS 2.0 . Hämtad 14 augusti 2015. Arkiverad från originalet 25 augusti 2015.
  8. Angular, version 2: proprioception-förstärkning . angularjs.blogspot.ru. Hämtad 13 oktober 2016. Arkiverad från originalet 12 oktober 2016.
  9. kantig  . _ npm . Hämtad: 22 oktober 2022.
  10. Förstå komponenter . Datum för åtkomst: 20 oktober 2016. Arkiverad från originalet 20 oktober 2016.
  11. Vad är Angular? . Hämtad 12 februari 2013. Arkiverad från originalet 20 maj 2013.
  12. Enhetstestning . Hämtad 20 oktober 2016. Arkiverad från originalet 17 oktober 2016.
  13. E2E-testning . Hämtad 20 oktober 2016. Arkiverad från originalet 12 april 2017.
  14. Vi skriver ett enkelt direktiv
  15. ngApp . Datum för åtkomst: 6 november 2016. Arkiverad från originalet 22 oktober 2016.
  16. Databindning . Hämtad 6 november 2016. Arkiverad från originalet 3 januari 2015.
  17. Arkiverad kopia . Hämtad 6 november 2016. Arkiverad från originalet 20 oktober 2016.
  18. ngRepeat-direktiv i modul ng . Hämtad 6 november 2016. Arkiverad från originalet 20 oktober 2016.
  19. Komponentrouter . Hämtad 20 oktober 2016. Arkiverad från originalet 21 oktober 2016.
  20. ngIf Angular docs . Hämtad 6 november 2016. Arkiverad från originalet 20 oktober 2016.
  21. AngularJS Handledning: Omfattande guide. Del 2. (Anpassade direktiv). . Hämtad 27 november 2016. Arkiverad från originalet 28 november 2016.
  22. Mallar i direktiv
  23. 5 fantastiska AngularJS-funktioner . Hämtad 13 februari 2013. Arkiverad från originalet 20 maj 2013.
  24. Batarang hemsida . Hämtad 12 maj 2013. Arkiverad från originalet 10 februari 2015.
  25. AngularJS: Introduktion av AngularJS Batarang . Hämtad 12 maj 2013. Arkiverad från originalet 2 februari 2018.
  26. 1 2 Backbonejs vs Angularjs: Avmystifiera myterna (nedlänk) . Hämtad 13 februari 2013. Arkiverad från originalet 20 maj 2013. 
  27. Javascript-ramverk och databindning (nedlänk) . Hämtad 13 februari 2013. Arkiverad från originalet 20 maj 2013. 
  28. skriptdirektiv i modul ng . Datum för åtkomst: 27 november 2016. Arkiverad från originalet 27 november 2016.

Litteratur

Länkar