AngularJS

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 4.5.2022 tarkistetusta versiosta . tarkastukset vaativat 5 muokkausta .
AngularJS
Tyyppi puitteet , JavaScript- kirjasto ja funktiokirjasto
Kehittäjä Google
Sisään kirjoitettu JavaScript [1]
Ensimmäinen painos 20. lokakuuta 2010
Laitteistoalusta web-alusta
uusin versio
Lisenssi MIT-lisenssi [4] [5]
Verkkosivusto angularjs.org
 Mediatiedostot Wikimedia Commonsissa

AngularJS  on avoimen lähdekoodin JavaScript - kehys . Suunniteltu yksisivuisten sovellusten kehittämiseen [6] . Sen tavoitteena on laajentaa MVC -malliin perustuvia selainsovelluksia sekä yksinkertaistaa testausta ja kehitystä.

Kehys toimii HTML :n kanssa , joka sisältää muita mukautettuja attribuutteja, jotka kuvataan direktiiveillä, ja sitoo sivualueen syötteen tai lähdön malliin, joka on tavallisia JavaScript-muuttujia. Näiden muuttujien arvot asetetaan manuaalisesti tai noudetaan staattisista tai dynaamisista JSON-tiedoista.

Kehityshistoria

AngularJS:n kehittivät vuonna 2009 Misko Heveri ja Adam Abrons Brat Tech LLC:ssä megatavun JSON -tallennuspalvelun takana olevaksi ohjelmistoksi helpottamaan yrityssovellusten kehitystä. Palvelua isännöi "GetAngular.com" -verkkotunnus, ja sillä oli useita rekisteröityneitä käyttäjiä, ennen kuin he päättivät luopua liikeideastaan ​​ja julkaista Angular avoimen lähdekoodin kirjastona.

Abrons jätti projektin, mutta Googlella työskentelevä Heveri jatkoi kirjaston kehittämistä ja ylläpitoa muiden Google-työntekijöiden Igor Minarin ja Voita Jinin kanssa.

Maaliskuussa 2014 julkistettiin AngularJS 2.0 [7] -kehitys . Uusi versio kirjoitettiin tyhjästä TypeScriptillä ja erosi suuresti edellisestä, joten myöhemmin se päätettiin kehittää erilliseksi viitekehykseksi nimeltä Angular . Angular 2 julkaistiin 15. syyskuuta 2016 [8] , kun taas ensimmäisen version kehittämistä jatkettiin erikseen nimellä AngularJS.

Huhtikuussa 2022, kun uusin versio 1.8.3 julkaistiin, AngularJS:n tuki lopetettiin virallisesti. [9]

Philosophy of Angular

AngularJS on suunniteltu uskoen, että deklaratiivinen ohjelmointi on paras käyttöliittymien rakentamiseen ja ohjelmistokomponenttien kuvaamiseen [10] , kun taas pakottava ohjelmointi sopii erinomaisesti liiketoimintalogiikan kuvaamiseen [11] . Kehys mukauttaa ja laajentaa perinteistä HTML:ää tarjoamaan kaksisuuntaisen tiedon sidonnan dynaamiselle sisällölle, mikä mahdollistaa mallin ja näkymän automaattisen synkronoinnin. Tämän seurauksena AngularJS vähentää DOM-manipuloinnin roolia ja parantaa testattavuutta.

Kehitystavoitteet

Angular noudattaa MVC-suunnittelumallia ja rohkaisee löyhää kytkentää esityksen, datan ja komponenttilogiikan välillä. Riippuvuuden lisäyksen avulla Angular tuo klassiset palvelinpuolen palvelut, kuten näkymästä riippuvat ohjaimet, asiakaspuolelle. Tämän seurauksena palvelimen kuormitus vähenee ja verkkosovellus kevenee.

Suositut sisäänrakennetut Angular-direktiivit

AngularJS-käskyjen avulla voit luoda mukautettuja HTML-tageja ja -attribuutteja lisätäksesi käyttäytymistä tietyille elementeille. [neljätoista]

ng-app Ilmoittaa elementin sovelluksen juurielementiksi. [viisitoista] ng-sidos Korvaa automaattisesti HTML-elementin tekstin välitetyn lausekkeen arvolla. ng-malli Sama kuin ng-bind, tarjoaa vain kaksisuuntaisen tiedonsidon. [16] Elementin sisältö muuttuu - kulma muuttaa myös mallin arvoa. Mallin arvo muuttuu - Angular muuttaa tekstiä elementin sisällä. ng-luokka Määrittää luokat dynaamista lataamista varten. ng-ohjain Määrittää JavaScript-ohjaimen HTML-lausekkeiden arvioimiseksi MVC:n mukaan. [17] ng-toista Luo DOM-ilmentymän jokaiselle kokoelman elementille. [kahdeksantoista] ng-show ja ng-hide Näyttää tai piilottaa elementin loogisen lausekkeen arvon mukaan. ng-kytkin Luo mallin esiintymän joukosta vaihtoehtoja lausekkeen arvon mukaan. ng-näkymä Perusdirektiivi vastaa JSON-protokollan hyväksyvien reittien [19] käsittelystä ennen määritettyjen ohjaimien ohjaamien mallien hahmontamista. ng-if Poistaa tai luo osan DOM-puusta lausekkeen arvon mukaan. Jos ngIf:lle määritetyn lausekkeen arvo on epätosi, elementti poistetaan DOM:sta, muuten vasta kloonattu elementti lisätään DOM:iin. [kaksikymmentä]

On myös mahdollista luoda mukautettuja ohjeita, mukaan lukien mallien käyttäminen komentosarjatunnisteessa. [21] [22]

Kaksisuuntainen tiedonsidonta

Kaksisuuntainen tiedonsidonta AngularJS:ssä on merkittävin ominaisuus: se vähentää koodin määrää vapauttamalla palvelimen mallien käsittelystä. Sen sijaan mallit hahmonnetaan tavallisena HTML-muodossa, joka on täytetty mallissa määritetyn laajuuden sisällä. Angular- palvelu $scopetarkkailee mallin muutoksia ja muuttaa näkymän HTML-lausekeosaa ohjaimen kautta. Myös kaikki näkymään tehdyt muutokset näkyvät mallissa. Tämä ohittaa DOM-käsittelyn tarpeen ja helpottaa verkkosovellusten alustusta ja prototyyppien luomista [23] .

Plugin for Chrome

Heinäkuussa 2012 Angular-tiimi julkaisi Google Chrome -selaimelle laajennuksen nimeltä Batarang [24] , joka helpottaa Angularille rakennettujen verkkosovellusten virheenkorjausta. Laajennus helpottaa pullonkaulojen havaitsemista ja tarjoaa graafisen käyttöliittymän sovellusten virheenkorjaukseen [25] .

Vertailu Backbone.js:n kanssa

Backbone.js  , JavaScript - kirjasto, joka perustuu Model-View-Presenter (MVP) -suunnittelumalliin, sisältää samanlaiset ominaisuudet verkkosovellusten kehittämiseen RESTful JSON -rajapinnan tuella. Backbone on erittäin kevyt kirjasto (pakattu ja gzip-pakattu kooltaan ~6,3 kt), mutta se vaatii toimiakseen Underscore.js -kirjaston , ja REST API:n tukemiseksi ja DOM-elementtien kanssa toimimiseen on suositeltavaa sisällyttää jQuery- kuten kirjasto: jQuery tai Zepto. Backbone.js:n loi Jeremy Ashkenas , joka tunnetaan myös CoffeeScriptin luojana .

On kuitenkin myös merkittäviä eroja:

Tietojen sitominen Merkittävin kirjastot erottava ominaisuus on tapa, jolla malli ja näkymä synkronoidaan. Vaikka AngularJS tukee kaksisuuntaista tiedonsidontaa, Backbone.js luottaa suurelta osin mallikoodiin sitoakseen mallin ja näkymän [26] . LEVÄTÄ Backbone.js tukee RESTful- taustaohjelmaa hyvin. On myös erittäin helppoa työskennellä RESTful API:iden kanssa AngularJS:ssä käyttämällä $resurssipalvelua. Samaan aikaan AngularJS:ssä on joustavampi $http-palvelu, joka muodostaa yhteyden etäpalvelimiin käyttämällä selaimen XMLHttpRequest -objektia tai JSONP :n kautta [27] . Mallit AngularJS käyttää mallina mukautettuja HTML-tageja ja lausekkeita [28] . Backbone.js käyttää erilaisia ​​​​mallinnusohjelmia, kuten Underscore.js [26] .

Katso myös

Muistiinpanot

  1. Angularjs Open Source -projekti Open Hubissa: Languages ​​​​Page - 2006.
  2. Julkaisu 1.8.3 - 2022.
  3. 1.8.3 lopulliset jäähyväiset (2022-04-07)
  4. angular.js/LICENSE osoitteessa master angular/angular.js GitHub
  5. Angularjs Open Source -projekti Open Hubissa: Lisenssisivu - 2006.
  6. Yksisivuinen sovellus AngularJs:llä. Opetusohjelma . Käyttöpäivä: 6. marraskuuta 2016. Arkistoitu alkuperäisestä 7. marraskuuta 2016.
  7. AngularJS 2.0 . Haettu 14. elokuuta 2015. Arkistoitu alkuperäisestä 25. elokuuta 2015.
  8. Kulma, versio 2: proprioception-vahvistus . angularjs.blogspot.ru. Haettu 13. lokakuuta 2016. Arkistoitu alkuperäisestä 12. lokakuuta 2016.
  9. kulmikas  . _ npm . Haettu: 22.10.2022.
  10. Komponenttien ymmärtäminen . Käyttöpäivä: 20. lokakuuta 2016. Arkistoitu alkuperäisestä 20. lokakuuta 2016.
  11. Mikä on Angular? . Haettu 12. helmikuuta 2013. Arkistoitu alkuperäisestä 20. toukokuuta 2013.
  12. Yksikkötestaus . Haettu 20. lokakuuta 2016. Arkistoitu alkuperäisestä 17. lokakuuta 2016.
  13. E2E-testaus . Haettu 20. lokakuuta 2016. Arkistoitu alkuperäisestä 12. huhtikuuta 2017.
  14. Kirjoitamme yksinkertaisen ohjeen
  15. ngApp . Käyttöpäivä: 6. marraskuuta 2016. Arkistoitu alkuperäisestä 22. lokakuuta 2016.
  16. Tietojen sidonta . Haettu 6. marraskuuta 2016. Arkistoitu alkuperäisestä 3. tammikuuta 2015.
  17. Arkistoitu kopio . Haettu 6. marraskuuta 2016. Arkistoitu alkuperäisestä 20. lokakuuta 2016.
  18. ngRepeat - direktiivi moduulissa ng . Haettu 6. marraskuuta 2016. Arkistoitu alkuperäisestä 20. lokakuuta 2016.
  19. Komponenttireititin . Haettu 20. lokakuuta 2016. Arkistoitu alkuperäisestä 21. lokakuuta 2016.
  20. ngIf Angular docs . Haettu 6. marraskuuta 2016. Arkistoitu alkuperäisestä 20. lokakuuta 2016.
  21. AngularJS-opetusohjelma: Kattava opas. Osa 2. (Mukautetut ohjeet). . Haettu 27. marraskuuta 2016. Arkistoitu alkuperäisestä 28. marraskuuta 2016.
  22. Mallit ohjeissa
  23. 5 mahtavaa AngularJS-ominaisuutta . Haettu 13. helmikuuta 2013. Arkistoitu alkuperäisestä 20. toukokuuta 2013.
  24. Batarang kotisivu . Haettu 12. toukokuuta 2013. Arkistoitu alkuperäisestä 10. helmikuuta 2015.
  25. AngularJS: Esittelyssä AngularJS Batarang . Haettu 12. toukokuuta 2013. Arkistoitu alkuperäisestä 2. helmikuuta 2018.
  26. 1 2 Backbonejs vs Angularjs: Mystify the Myths (downlink) . Haettu 13. helmikuuta 2013. Arkistoitu alkuperäisestä 20. toukokuuta 2013. 
  27. Javascript-kehykset ja tietojen sidonta (downlink) . Haettu 13. helmikuuta 2013. Arkistoitu alkuperäisestä 20. toukokuuta 2013. 
  28. komentosarjaohje moduulissa ng . Käyttöpäivä: 27. marraskuuta 2016. Arkistoitu alkuperäisestä 27. marraskuuta 2016.

Kirjallisuus

Linkit