AngularJS | |
---|---|
Típusú | keretrendszer , JavaScript könyvtár és függvénytár |
Fejlesztő | |
Beírva | JavaScript [1] |
Első kiadás | 2010. október 20 |
Hardver platform | webes platform |
legújabb verzió |
|
Engedély | MIT licenc [4] [5] |
Weboldal | angularjs.org |
Médiafájlok a Wikimedia Commons oldalon |
Az AngularJS egy nyílt forráskódú JavaScript - keretrendszer . Egyoldalas alkalmazások fejlesztésére tervezték [6] . Célja az MVC mintára épülő böngésző alkalmazások kiterjesztése, valamint a tesztelés és fejlesztés egyszerűsítése.
A keretrendszer olyan HTML -kóddal működik , amely további egyéni attribútumokat tartalmaz, amelyeket direktívák írnak le, és az oldalterület bemenetét vagy kimenetét egy olyan modellhez köti, amely szokásos JavaScript-változók. Ezeknek a változóknak az értékeit manuálisan állítják be, vagy statikus vagy dinamikus JSON-adatokból kérik le.
Az AngularJS-t 2009-ben fejlesztette ki Misko Heveri és Adam Abrons a Brat Tech LLC-től, mint egy megabájtos JSON tárolószolgáltatás mögött álló szoftvert, amely megkönnyíti a vállalati alkalmazások fejlesztését. A szolgáltatást a "GetAngular.com" domain tárolta, és több regisztrált felhasználója is volt, mielőtt úgy döntöttek, hogy felhagynak az üzleti ötlettel, és az Angulart nyílt forráskódú könyvtárként adják ki.
Abrons kilépett a projektből, de Heveri, aki a Google -nál dolgozik , folytatta a könyvtár fejlesztését és karbantartását Igor Minarral és Voita Jin-nel.
2014 márciusában jelentették be az AngularJS 2.0 [7] fejlesztését . Az új verzió a nulláról íródott TypeScriptben , és nagyon különbözött az előzőtől, ezért később úgy döntöttek, hogy Angular néven külön keretrendszerként fejlesztik . Az Angular 2 2016. szeptember 15-én jelent meg [8] , míg az első verziót AngularJS néven külön fejlesztették tovább.
2022 áprilisában, a legújabb 1.8.3-as verzió megjelenésével az AngularJS támogatása hivatalosan is megszűnt. [9]
Az AngularJS-t azzal a meggyőződéssel tervezték, hogy a deklaratív programozás a legjobb a felhasználói felületek felépítéséhez és a szoftverkomponensek leírásához [10] , míg az imperatív programozás nagyszerű az üzleti logika leírásához [11] . A keretrendszer adaptálja és kiterjeszti a hagyományos HTML-t, hogy kétirányú adat-összerendelést biztosítson a dinamikus tartalomhoz, lehetővé téve a modell és a nézet automatikus szinkronizálását. Ennek eredményeként az AngularJS csökkenti a DOM-manipuláció szerepét és javítja a tesztelhetőséget.
Az Angular az MVC tervezési mintáját követi, és laza összekapcsolást tesz lehetővé a megjelenítés, az adatok és az összetevő logikája között. A függőségi injekció segítségével az Angular a klasszikus szerveroldali szolgáltatásokat, például a nézetfüggő vezérlőket hozza az ügyféloldalra. Következésképpen a szerver terhelése csökken, és a webalkalmazás könnyebbé válik.
Az AngularJS direktívákkal egyéni HTML-címkéket és attribútumokat hozhat létre bizonyos elemek viselkedésének hozzáadásához. [tizennégy]
ng-app Az elemet az alkalmazás gyökérelemeként deklarálja. [tizenöt] ng-köt Automatikusan lecseréli egy HTML-elem szövegét az átadott kifejezés értékére. ng-modell Ugyanaz, mint az ng-bind, csak kétirányú adat-összerendelést biztosít. [16] Az elem tartalma megváltozik - a szög is megváltoztatja a modell értékét. A modell értéke megváltozik - az angular megváltoztatja az elemen belüli szöveget. ng-osztályú Osztályokat határoz meg a dinamikus betöltéshez. ng-vezérlő JavaScript-vezérlőt határoz meg a HTML-kifejezések MVC szerinti kiértékeléséhez. [17] ng-ismétlés Létrehoz egy DOM-példányt a gyűjtemény minden eleméhez. [tizennyolc] ng-show és ng-hide Megjeleníti vagy elrejti az elemet a logikai kifejezés értékétől függően. ng-kapcsoló A kifejezés értékétől függően egy sablon példányát hozza létre a beállítások halmazából. ng-view Az alapdirektíva felelős a JSON-t elfogadó útvonalak [19] kezeléséért , mielőtt a megadott vezérlők által vezérelt sablonokat renderelné. ng-if Egy kifejezés értékétől függően eltávolítja vagy létrehozza a DOM-fa egy részét. Ha az ngIf-hez rendelt kifejezés értéke hamis, akkor az elem eltávolításra kerül a DOM-ból, ellenkező esetben az újonnan klónozott elem bekerül a DOM-ba. [húsz]Lehetőség van egyéni direktívák létrehozására is, beleértve a sablonok használatát a szkriptcímkében. [21] [22]
A kétirányú adatkötés az AngularJS-ben a legfigyelemreméltóbb funkció: csökkenti a kód mennyiségét azáltal, hogy megszabadítja a szervert a sablonok kezelésétől. Ehelyett a sablonok egyszerű HTML-ként jelennek meg, kitöltve a modellben meghatározott hatókörön belüli adatokkal. Az $scopeAngular szolgáltatása figyeli a modell változásait, és a vezérlőn keresztül módosítja a nézet HTML-kifejezési részét. Ezenkívül a nézet bármilyen változása tükröződik a modellben. Ez megkerüli a DOM-kezelés szükségességét, és megkönnyíti a webalkalmazások inicializálását és prototípus-készítését [23] .
2012 júliusában az Angular csapata kiadott egy bővítményt a Google Chrome böngészőhöz Batarang [24] néven , amely megkönnyíti az Angularra épített webes alkalmazások hibakeresését. A kiterjesztés megkönnyíti a szűk keresztmetszetek felismerését, és grafikus felületet kínál az alkalmazások hibakereséséhez [25] .
A Backbone.js , a Model-View-Presenter (MVP) tervezési mintán alapuló JavaScript -könyvtár, hasonló képességekkel rendelkezik a webalkalmazások fejlesztéséhez a RESTful JSON felület támogatásával. A Backbone egy nagyon könnyű könyvtár (tömörítve és gzip-ben tömörítve, mérete ~6,3 KB), de működéséhez szükség van az Underscore.js könyvtárra , valamint a REST API támogatásához és a DOM elemekkel való munkához ajánlott egy jQuery- mint a könyvtár: jQuery vagy Zepto. A Backbone.js-t Jeremy Ashkenas hozta létre, akit a CoffeeScript megalkotójaként is ismernek .
Vannak azonban jelentős különbségek is:
Kötelező adatok A legszembetűnőbb jellemző, amely elválasztja a könyvtárakat, a modell és a nézet szinkronizálásának módja. Míg az AngularJS támogatja a kétirányú adat-összerendelést, a Backbone.js nagymértékben támaszkodik a sablonkódra a modell és a nézet összekapcsolásához [26] . PIHENÉS A Backbone.js jól támogatja a RESTful háttérrendszert. Nagyon egyszerű a RESTful API-kkal is dolgozni az AngularJS-ben a $resource szolgáltatás használatával. Ugyanakkor az AngularJS rendelkezik egy rugalmasabb $http szolgáltatással, amely a böngésző XMLHttpRequest objektumával vagy JSONP -n keresztül csatlakozik a távoli szerverekhez [27] . Sablonok Az AngularJS egyedi HTML-címkék és kifejezések kombinációját használja sablonként [28] . A Backbone.js különféle sablonokat használ, mint például az Underscore.js [26] .JavaScript | |
---|---|
Ötletek | |
Fordítók | |
Motorok | |
Könyvtárak és keretrendszerek | |
Szerkesztők | |
Eszközök |
|
Kapcsolódó technológiák | |
Emberek | |
Kategória |
ECMAScript | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dialektusok | |||||||||||||
Motorok ( összehasonlítás ) | |||||||||||||
Keretrendszerek , könyvtárak |
| ||||||||||||
Emberek | |||||||||||||
Egyéb |