AngularJS

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 4. května 2022; kontroly vyžadují 5 úprav .
AngularJS
Typ framework , knihovna JavaScript a knihovna funkcí
Vývojář Google
Zapsáno v JavaScript [1]
První vydání 20. října 2010
Hardwarová platforma webovou platformu
Nejnovější verze
Licence licence MIT [4] [5]
webová stránka angularjs.org
 Mediální soubory na Wikimedia Commons

AngularJS  je open source JavaScript framework . _ Určeno pro vývoj jednostránkových aplikací [6] . Jeho cílem je rozšířit aplikace prohlížeče založené na vzoru MVC a také zjednodušit testování a vývoj.

Rámec pracuje s HTML , které obsahuje další vlastní atributy, které jsou popsány direktivami, a váže vstup nebo výstup oblasti stránky k modelu, který je obyčejnými proměnnými JavaScriptu. Hodnoty těchto proměnných se nastavují ručně nebo se načítají ze statických nebo dynamických dat JSON.

Historie vývoje

AngularJS vyvinuli v roce 2009 Misko Heveri a Adam Abrons ve společnosti Brat Tech LLC jako software za megabajtovou úložnou službou JSON pro usnadnění vývoje podnikových aplikací. Služba byla hostována na doméně „GetAngular.com“ a měla několik registrovaných uživatelů, než se rozhodli opustit podnikatelský nápad a vydat Angular jako open source knihovnu.

Abrons projekt opustil, ale Heveri, který pracuje ve společnosti Google , pokračoval ve vývoji a údržbě knihovny s dalšími zaměstnanci společnosti Google Igor Minar a Voita Jin.

V březnu 2014 byl oznámen vývoj AngularJS 2.0 [7] . Nová verze byla napsána od začátku v TypeScriptu a byla velmi odlišná od předchozí, takže bylo později rozhodnuto vyvinout ji jako samostatný framework s názvem Angular . Angular 2 byl vydán 15. září 2016 [8] , přičemž první verze se nadále vyvíjela samostatně jako AngularJS.

V dubnu 2022, s vydáním nejnovější verze 1.8.3, byla podpora pro AngularJS oficiálně ukončena. [9]

Filosofie Angularu

AngularJS je navržen s přesvědčením, že deklarativní programování je nejlepší pro vytváření uživatelských rozhraní a popis softwarových komponent [10] , zatímco imperativní programování je skvělé pro popis obchodní logiky [11] . Rámec přizpůsobuje a rozšiřuje tradiční HTML tak, aby poskytoval obousměrnou datovou vazbu pro dynamický obsah, což umožňuje automatickou synchronizaci modelu a pohledu. V důsledku toho AngularJS snižuje roli manipulace s DOM a zlepšuje testovatelnost.

Rozvojové cíle

Angular sleduje návrhový vzor MVC a podporuje volné propojení mezi prezentací, daty a logikou komponent. Pomocí dependency injection přináší Angular klasické služby na straně serveru, jako jsou řadiče závislé na zobrazení, na stranu klienta. V důsledku toho se sníží zatížení serveru a webová aplikace se stane lehčí.

Populární vestavěné úhlové směrnice

Pomocí direktiv AngularJS můžete vytvářet vlastní HTML tagy a atributy pro přidání chování k určitým prvkům. [čtrnáct]

ng-app Deklaruje prvek jako kořenový prvek pro aplikaci. [patnáct] ng-vázat Automaticky nahradí text prvku HTML hodnotou předávaného výrazu. ng-model Stejně jako ng-bind poskytuje pouze obousměrnou datovou vazbu. [16] Změní se obsah prvku – angular změní i hodnotu modelu. Hodnota modelu se změní - angular změní text uvnitř prvku. ng-třída Definuje třídy pro dynamické zatížení. ng-kontrolér Definuje řadič JavaScriptu pro vyhodnocování výrazů HTML podle MVC. [17] ng-opakovat Vytvoří instanci DOM pro každý prvek v kolekci. [osmnáct] ng-show a ng-hide Zobrazí nebo skryje prvek v závislosti na hodnotě booleovského výrazu. ng-spínač Vytvoří instanci šablony ze sady voleb v závislosti na hodnotě výrazu. ng-view Základní direktiva je zodpovědná za zpracování tras [19] , které přijímají JSON před vykreslením šablon řízených určenými řadiči. ng-if Odebere nebo vytvoří část stromu DOM v závislosti na hodnotě výrazu. Pokud je hodnota výrazu přiřazeného k ngIf false, prvek je odstraněn z DOM, jinak je nově klonovaný prvek vložen do DOM. [dvacet]

Je také možné vytvořit vlastní direktivy, včetně použití šablon ve značce skriptu. [21] [22]

Obousměrná datová vazba

Obousměrná datová vazba v AngularJS je nejpozoruhodnější funkcí: snižuje množství kódu tím, že server osvobozuje od práce se šablonami. Místo toho se šablony vykreslují jako prostý HTML, vyplněný daty obsaženými v rozsahu definovaném v modelu. Služba $scopev Angular sleduje změny v modelu a mění sekci HTML výrazu pohledu prostřednictvím ovladače. Také jakékoli změny pohledu se projeví v modelu. To obchází potřebu manipulace s DOM a usnadňuje inicializaci webových aplikací a prototypování [23] .

Plugin pro Chrome

V červenci 2012 tým Angular vydal plugin pro prohlížeč Google Chrome s názvem Batarang [24] , který usnadňuje ladění webových aplikací postavených na Angular. Rozšíření usnadňuje detekci úzkých míst a nabízí grafické rozhraní pro ladění aplikací [25] .

Porovnání s Backbone.js

Backbone.js  , JavaScriptová knihovna založená na návrhovém vzoru Model-View-Presenter (MVP), má podobné možnosti pro vývoj webových aplikací s podporou rozhraní RESTful JSON . Páteř je velmi lehká knihovna (komprimovaná a komprimovaná gzip o velikosti ~6,3 KB), ale ke svému fungování vyžaduje knihovnu Underscore.js a pro podporu REST API a práci s prvky DOM se doporučuje zahrnout jQuery- jako knihovna: jQuery nebo Zepto. Backbone.js vytvořil Jeremy Ashkenas , který je také známý jako tvůrce CoffeeScriptu .

Existují však také významné rozdíly:

Datová vazba Nejvýraznějším prvkem, který odděluje knihovny, je způsob synchronizace modelu a pohledu. Zatímco AngularJS podporuje obousměrnou datovou vazbu, Backbone.js se při svázání modelu a zobrazení silně spoléhá na standardní kód [26] . ODPOČINEK Backbone.js dobře podporuje RESTful backend. Je také velmi snadné pracovat s RESTful API v AngularJS pomocí služby $resource. AngularJS má zároveň flexibilnější službu $http, která se připojuje ke vzdáleným serverům pomocí objektu XMLHttpRequest prohlížeče nebo přes JSONP [27] . Šablony AngularJS používá jako šablonu kombinaci vlastních HTML tagů a výrazů [28] . Backbone.js používá různé šablonovací nástroje, jako je Underscore.js [26] .

Viz také

Poznámky

  1. Projekt angularjs Open Source na Open Hub: Stránka jazyků - 2006.
  2. Vydání 1.8.3 – 2022.
  3. 1.8.3 konečné rozloučení (2022-04-07)
  4. angular.js/LICENSE na master angular/angular.js GitHub
  5. Projekt angularjs Open Source na Open Hub: Stránka licencí - 2006.
  6. Jednostránková aplikace využívající AngularJs. Výukový program . Datum přístupu: 6. listopadu 2016. Archivováno z originálu 7. listopadu 2016.
  7. AngularJS 2.0 . Získáno 14. 8. 2015. Archivováno z originálu 25. 8. 2015.
  8. Angular, verze 2: propriocepce-posílení . angularjs.blogspot.ru. Získáno 13. října 2016. Archivováno z originálu 12. října 2016.
  9. hranatý  . _ npm . Staženo: 22. října 2022.
  10. Porozumění komponentám . Datum přístupu: 20. října 2016. Archivováno z originálu 20. října 2016.
  11. Co je Angular? . Získáno 12. února 2013. Archivováno z originálu 20. května 2013.
  12. Testování jednotek . Získáno 20. října 2016. Archivováno z originálu 17. října 2016.
  13. Testování E2E . Získáno 20. října 2016. Archivováno z originálu 12. dubna 2017.
  14. Napíšeme jednoduchou direktivu
  15. ngApp . Datum přístupu: 6. listopadu 2016. Archivováno z originálu 22. října 2016.
  16. Datová vazba . Získáno 6. listopadu 2016. Archivováno z originálu 3. ledna 2015.
  17. Archivovaná kopie . Získáno 6. listopadu 2016. Archivováno z originálu dne 20. října 2016.
  18. ngRepeat-direktiva v modulu ng . Získáno 6. listopadu 2016. Archivováno z originálu dne 20. října 2016.
  19. Směrovač komponent . Získáno 20. října 2016. Archivováno z originálu 21. října 2016.
  20. ngIf Angular docs . Získáno 6. listopadu 2016. Archivováno z originálu dne 20. října 2016.
  21. Výukový program AngularJS: Komplexní průvodce. Část 2. (Celní směrnice). . Získáno 27. listopadu 2016. Archivováno z originálu 28. listopadu 2016.
  22. Šablony v direktivách
  23. 5 úžasných funkcí AngularJS . Získáno 13. února 2013. Archivováno z originálu 20. května 2013.
  24. Domovská stránka Batarang . Získáno 12. 5. 2013. Archivováno z originálu 10. 2. 2015.
  25. AngularJS: Představujeme AngularJS Batarang . Staženo 12. 5. 2013. Archivováno z originálu 2. 2. 2018.
  26. 1 2 Backbonejs vs Angularjs: Demystifikace mýtů (downlink) . Získáno 13. února 2013. Archivováno z originálu 20. května 2013. 
  27. Javascript Frameworks And Data Binding (downlink) . Získáno 13. února 2013. Archivováno z originálu 20. května 2013. 
  28. direktiva skriptu v modulu ng . Datum přístupu: 27. listopadu 2016. Archivováno z originálu 27. listopadu 2016.

Literatura

Odkazy