AngularJS | |
---|---|
Typ | framework , knihovna JavaScript a knihovna funkcí |
Vývojář | |
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.
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]
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.
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čí.
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 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] .
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] .
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] .JavaScript | |
---|---|
Nápady | |
Kompilátory | |
Motory | |
Knihovny a rámce | |
redaktoři | |
Nástroje |
|
Související technologie | |
Lidé | |
Kategorie |
ECMAScript | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dialekty |
| ||||||||||||
Motory ( srovnání ) |
| ||||||||||||
Rámce , knihovny |
| ||||||||||||
Lidé | |||||||||||||
jiný |
|