Aurelia ja Angular ovat suosittuja JavaScript-asiakaskehyksiä, joiden avulla voit rakentaa nykyaikaisia sovelluksia verkkoon, mobiililaitteisiin ja työpöydälle. Ne tarjoavat nykyaikaisia ominaisuuksia, kuten datan sitominen, laajennettavissa oleva HTML, SPA, reititys, UI Composition jne. monimutkaisten sovellusten rakentamiseen.
Tässä blogikirjoituksessa olen yrittänyt vertailla Aureliaa ja Angularia korostaen Aurelian etuja Angulariin nähden sekä molempien hyviä ja huonoja puolia.
Aurelia ei ole huomaamaton, helppo oppia ja ymmärtää sen ”convention over configuration” -filosofian ansiosta, sinun tarvitsee vain noudattaa joitakin yksinkertaisia konventioita ilman sellaisia konfiguraatioita, joita Angularin tapauksessa vaaditaan. Sen syntaksi on helppo muistaa, ja sen avulla voit rakentaa komponentteja Typescriptissä ja vanilja-Javaskriptissä.
Aurelia ja Angular, molemmat perustuvat Komponentit-lähestymistapaan ja ovat monin tavoin samanlaisia. Angularin takana on pohjimmiltaan tietotekniikkajätti Google, kun taas Aurelia on Rob Eisenbergin ja hänen tiiminsä kehittämä, Eisenberg on aiemmin ollut Googlen Angular 2 -tiimin työntekijä, hän lähti sieltä erimielisyyksien vuoksi ja päätti rakentaa ”huomaamattoman” alustan, jossa noudatetaan web-standardeja.
Tämä on yksi Aurelian eduista. Se tekee siitä huomaamattoman, koska sen lähestymistapa on ”convention over configuration”. Sinun ei tarvitse huolehtia kehysasioista, vaan voit keskittyä ensisijaisesti sovelluslogiikkaan. Aureliassa, jos luot komponentin, sinun ei tarvitse mitään koristeriaattoria kommentoidaksesi komponenttia, sinun ei tarvitse huolehtia metadatan määrittelystä, noudata vain yksinkertaisia konventioita ja Aurelia tekee paljon asioita itsestään.
Katsotaanpa esimerkki. Luodaan peruskomponentti, joka tulostaa ”Hello World!”, komponenttisi Typescript-koodi voi olla:
HTML-malli:
Komponenttisi oletusvalitsin on <hello></hello> ja sen HTML-malli tunnistetaan tiedostonimeä koskevasta konventiosta.
Sama komponentti Angularissa
Typescript-koodi:
HTML-malli:
Angularissa komponentti pitää myös ilmoittaa ngModuulin declaration-osassa.
Komponentin luominen näyttää olevan Aureliassa yksinkertaisempaa, eikö ?
Sidontasyntaksi
Aurelian syntaksi on helpompi oppia ja muistaa.
Arvon sidontasyntaksi: attribute.command=”expression”
e.Esim. <syöttöarvo.bind=”etunimi”>
Tapahtuman sitomisen syntaksi: event.command=”expression”
e.g. <napin klikkaus.trigger=”sayHello()”>Say Hello</button>
Luokan sidonta:
e.g. <div class.bind=”isActive ? ’active’ : ””></div>
Angularin sidontasyntaksi
Arvon sidonta: Angularissa ngModel-direktiiviä käytetään syötteiden sitomiseen, Huomaa tässä ”ngModel” on case-sensitive .
e.g. <sisäänsyöttö =”etunimi” >
Tapahtuman sitominen: Tämä on jokseenkin yksinkertaista (event)=”expression”
e.g. <nappi (click)=”sayHello()”>Say Hello</button>
Luokkasidonta: Sen syntaksi on =”some-condition”
esim. =”hero === selectedHero”
Reititys ja navigointi
Reitityksen konfigurointi on periaatteessa samanlainen molemmissa kehyksissä, mutta yhdellä tärkeällä erolla. Angularissa moduulin reitit määritellään keskitetysti yhdessä konfiguraatiossa, joka määrittelee polut ja reititettävät komponentit sekä kaikki alareitit, tämä tekee siitä valtavan suuren ja monimutkaisen.
Vaikka Aureliassa voit määritellä vanhemmat reitit yhdessä paikassa ja laittaa alareittien konfiguraation lapsikomponenttiin, tämä piilottaa sisäisen monimutkaisuuden ja tekee komponenteista täysin kapseloituja.
Kielituki
Aurelia tarjoaa sinulle laajat vaihtoehdot valita ES5, ES 2015, ES 2016, ES.Next ja Typescript JavaScript-koodin kirjoittamiseen.
Kun taas Angular rajoittaa käyttäjän kirjoittamaan koodia vain Typescriptillä.
Standardien noudattaminen
Aurelia noudattaa asianmukaisesti olemassa olevia standardeja ja myös kehittyviä web-standardeja. Angular on tässä asiassa kaukana jäljessä, kuten yhteisö on huomauttanut, että se poikkeaa standardeista. Esimerkiksi HTML:ssä ei oteta huomioon isoja ja pieniä kirjaimia, mutta Angular on ottanut käyttöön isoja ja pieniä kirjaimia sisältävän syntaksin, kuten ngFor, ngModel, joita selain ei voi käsitellä natiivisti.
Ekosysteemi ja kaupallinen tuki
Angularin takana on tietotekniikkajättiläinen Google, sillä on laaja ekosysteemi ja yhteisön tuki. Aurelia on hieman jäljessä tässä asiassa sen ekosysteemi on pienempi ja kolmannen osapuolen komponentit eivät ole laajalti saatavilla.
Mutta sen ekosysteemi kasvaa jatkuvasti ja se on nousemassa suosituksi kehykseksi sen helpon kehitettävyyden, standardien noudattamisen ja yksinkertaisuuden vuoksi.
Dokumentaatio
Kummallakin Angularilla ja Aurelialla on runsas dokumentaatio ja oppaat, voit oppia kehyksen perusteet seuraamalla niiden sivustoilla tarjottuja oppaita. Yksi Angularin negatiivinen puoli on, että sillä on ”jyrkkä oppimiskäyrä”, Angular-tiimi päivittää kehystystään jatkuvasti ja nämä päivitykset ovat hyvin usein, joten sinun on jatkettava oppimista ja sopeuduttava tarvittaviin muutoksiin.
Johtopäätös
Aurelia ja Angular ovat molemmat tehokkaita kehyksiä, Angularilla on parempi maine johtuen Googlen kaupallisesta tuesta ja laajemmasta yhteisöllisestä tuesta.
Aurelia on yksinkertaisempi, huomaamattomampi ja standardien mukaisempi, ja sen ”konventio konfiguraation sijasta” -käytäntö tekee kehityksestä helpompaa ja nopeampaa.