Angular

Allikas: Vikipeedia
Mine navigeerimisribale Mine otsikasti

Angular (tuntud ka kui angular 2+) on TypeScriptis kirjutatud avatud lähtekoodil põhinev veebirakenduste raamistik. Angulari arendajateks on Angulari enda meeskond Googlis ja muud arendajad erafirmadest ja ka erainimesed. Angular on AngularJSi järglane.

Erinevused AngularJS'ist[muuda | muuda lähteteksti]

Angular on AngularJS'i täielik ümberehitus. Suurimad erinevused Angulari ja AngularJSi vahel on järgnevad:

  • Angular on kirjutatud TypeScripti jaoks. TypeScript on edasiarendus Javascriptist ja on seetõttu ka sellga tagupridi ühilduv. TypeScriptis on kasutusel staatiline tüüpimine, ehk programmi õigsust kontrollitakse enne selle kompileerimist. See vähendab testimise vajadust ja arendusaega. TypeScript on rangem tüüpimise poolest, kuid mugavam ja kui JavaScript pikemas perspektiivis, hõlmates rohkem mugavusi suuremate projektide arenduseks. Objektorienteeritud programmeerimisele mõeldud ehitus ja asünkroonsuse tugi on suurte ja modulaarsete veebilehtede loomisel kasulikud.
  • Angluaril ei ole skoopi.[1] Selle asemel on hierarhiline lähenemine kus muutujad on pärandatud edasi. Eesmärk on luua rohkem objektorienteeritud süsteem kus koodi kasutatakse uuesti koos sisemiste muutujatega.[2]
  • Suur osa AngularJSi tuumast on Angularis jaotatud lahti eraldi mooduliteks. Nende moodulite eeliseks on modulaarsus. Väiksemad lehed ei pea laadima nii palju asju tuumas ja on seeläbi kiiremad. Sellega kaasneb ka dünaamiline laadimine, ehk lehed laetakse mällu ainult siis kui neid on vahetult vaja. See vähendab algseks laadimiseks vajaminevat aega.

Arhitektuur[muuda | muuda lähteteksti]

Angulari raamistik on loodud dünaamiliste üheleheküljeliste veebilehtede ehitamiseks. Angular alustala on component ehk komponent, mis lehe funktsionaalsuse ja loogiga DOM-iga. Igal Angular projektil on vähemalt üks komponent milleks on root ehk juur komponent.[3] Selle sidumise jaoks on fail, kus asub selle komponendi view-i kontrolliv template ja selle template-i käitumist kontrolliv loogika.

Eelneva süsteemi ära tundmiseks ja ülesehituseks kasutatakse metadatat, ehk metaandmeid.[4] Need on koodi osad mis annavad Angulari koodi kompileerijale teada mis struktuuriga on tegemist.

Lisaks kasutavad komponentid veel service-eid. Service on koodi osa mis ei ole seotud mitte ühegi view-ga otseselt, vaid neid saab lisada teistesse komponentitesse neid inject-ides. [3] Service kui struktuur aitab ka muuta Angularli rohkem objektorienteerituks.

Komponendid ja service-id on pakendatud kokku module-iteks ehk mooduliteks. Moodul on nagu pakend mille sees on lehel samas kohas paiknevad elemendid, samaks kasutuseks vajalik loogika või samu väliseid teeke kasutav kood. Igal Angulari veebilehel on oma alus moodul, milleks on root, ehk juur, moodul.[3] Läbi selle alustab rakendus oma tööd ja seal defineeritakse ära tööks vajalikud järgnevad moodulid. Moodulid saab ka importida teistesse moodulitesse. Nii on Angularis kasutusel objekt orienteeritud struktuur, kus enkapsuleeritud moodulid kutsuvad välja üksteist.

Routing on viis kuidas Angular proovib kasutaja kogemust lehel teha kiiremaks ilma tema märkamata. Routing on mingi view muutmine, kui kasutaja seda nõuab, muutes URL-i. See toimub läbi veebilehitseja lehe muutmise töö muutmise.[3] See töötab igal viisil nagu alamlehele minemine veebilehitsejas, aga on kiirem, sest ei laeta iga kord uut lehte, vaid lihtsalt muudetakse view ja seda tehes DOM.

Routingule saab rakendada ka kasutaja kontrolle. Kui uus veebiaadressi nõue tuleb rountingusse, siis Angularlis on olemas valvurid ehk guard-id. Neid saab kasutada tuues sisse Routing moodul, ja lasevad mugavalt implementeerida kasutaja õiguseid.

Versioonide ajalugu[muuda | muuda lähteteksti]

Nimetamine[muuda | muuda lähteteksti]

Algselt kutsuti seda ümberkirjutust Angular neljaks kui see 2016. aastal välja kuulutati. Peale seda otsustati kutsuda Angular 1.x versioone angularJs ja kõik alates Angular 2.0 saati lihtsalt Angulariks.[1]

Angular 3[muuda | muuda lähteteksti]

Kolm jäeti vahele, sest oleks tekitanud segadust juba varem avaldatud ruutimis pakettiga mis oli kolmanda versiooni peal.[1]

Angular 4[5][muuda | muuda lähteteksti]

Angular 4 avaldati 2017 aasta märtsis. See oli tagurpidi ühilduv Angular kahega ja ei olnud sellest väga erinev.

  • Optimeeringud vähendasid angulari poolt genereeritud koodi suurust enamasti 60% võrra. Lisaks kompileerimine oli kiirem ja vigu oli vähem.
  • Lisati *ngIf ja *ngFor notatsioon, mis lubab lihtsalt kontrollida mingit konditsiooni.
  • Ehitati angular.io lehekülg, mis tänapäevani on Angulari dokumentatsiooni ja näidiste ametlik leht.
  • Animatsioonid tõsteti tuumast välja. Animatsioonide väljalülitus võimaldati.
  • Lisati HttpClient, mis lubab kergemini teha HTTP kutseid.

Angular 5[6][muuda | muuda lähteteksti]

  • Avaldatud 2017 märtsis.
  • Lisati toetus Angular Materialile.

Angular 6[7][muuda | muuda lähteteksti]

  • Avaldatud 2019 mais.
  • Lisati käsurea liides mis lubab käsurealt projetide ja failide malle ehitada.
  • Lisatud ng update ja ng add tugi.
  • Suurendati Angular Materialsi tunduvalt

Angular 7[8][muuda | muuda lähteteksti]

  • Avaldatud 2018 oktoober.
  • Lisati virtuaalne kerimine, mis laeb ainult pilte mis on parajasti ekraanil. See lubab teha väga pikku keritavaid liste, ilma et leht muutuks aeglasemaks.
  • Lisati lohistamine ja lahti laskmine.
  • Lisati uusi Materials ja käsurea kasutusi.
  • Mitu partner projekti tehti kasutatavaks nagu AngularFire, AngularConsole ja StackBlitz.

Angular 8[9][muuda | muuda lähteteksti]

  • Avaldatud 2019 mais.
  • Lisati diferentsiaalne lehtede laadimine(differential loading), mis tähendab, et olenevalt veebibrauserist laetakse uuem või vanem JavaScripti versioon. See teeb lehtede laadimise kiiremaks uuemates veebi brauserites.
  • Lisati dünaamiline teekide importimine laiskadele lehtedele.
  • Alustati Ivy väljalaskega.

Angular 9[10][muuda | muuda lähteteksti]

  • Avaldatud 2020 veebruaris.
  • Ehitati uus kompileerimis ja tööaja jooksutaja Ivy. Ivy pakub lisaks sadade pisivigade parandusele veel väiksemaid faili suurusi arenduse ajal, kiiremat testimist, kiiremat vigade parandamist, paremat CSS stiili ja klassi ühilduvust, paremat tüübi kontrolli ja vähem vigu ehitusel.
  • Lisati Youtube ja Google Mapsi komponendid, mis eemaldavad vajaduse kasutada nende väliseid rakendusliideseid.

Angular 10[11][muuda | muuda lähteteksti]

  • Avaldatud 2020 juunis.
  • Lisati uus Materialsi aja valija.
  • TypeScripti uuendused ja vanade brauserite toetuste eemaldamine.

Angular 11[12][muuda | muuda lähteteksti]

  • Avaldatud 2020 novembris.
  • Fontide automaatne sisse laadimine, mis optimeerib kompileerimist.
  • Üheksandas versioonis lisatud testimise uuendused said veel kasutusi juurde.
  • Vajalike teekide importimine tehti 2 kuni 4 korda kiiremaks.
  • Kiirem kompileerimine TypeScript neljaga.

Viited[muuda | muuda lähteteksti]

  1. 1,0 1,1 1,2 Michał Dziwoki. "What’s the difference between AngularJS and Angular?". Gorrion, 30 detsember 2019. Vaadatud 25.01.2021.
  2. "Typescript Classes". Typescript docs, 25 jaanuar 2021. Vaadatud 25. jaanuar 2021.
  3. 3,0 3,1 3,2 3,3 "Introduction to Angular concepts". Angular. Vaadatud 01.25.2021.
  4. Bhavika Garg. "Angular Architecture Overview". 26. jaanuar 2019. Vaadatud 25.01.2021.
  5. Stephen Fluin. "AngularJS 2017 Blog". AngularJS Blog, juuli 2017. Vaadatud 25.01.2021.
  6. Paul Krill. "Angular 5 JavaScript framework delayed". InfoWorld.com, 18 september 2017. Vaadatud 25.01.2021.
  7. Stephen Fluin. "Version 6 of Angular Now Available". angulario blog, 4. mai 2018. Vaadatud 25.01.2021.
  8. Stephen Fluin. "Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more". Angular io blog, 2018 oktoober. Vaadatud 25.01.2021.
  9. Stephen Fluin. "A plan for version 8.0 and Ivy". angular io blog, 9 veebruar 2019. Vaadatud 25.01.2021.
  10. Stephen Fluin. "Version 9 of Angular Now Available — Project Ivy has arrived!". angular io blog, 6 veebruar 2020. Vaadatud 01.25.2021.
  11. Stephen Fluin. "Version 10 of Angular Now Available". Angular io blog, 25 juuni 2020. Vaadatud 25.01.2021.
  12. Mark Techson. "Version 11 of Angular Now Available". Angular io blog, 12 november 2020. Vaadatud 25.01.2021.