Ember.js

Ember.js on avatud lähtekoodiga JavaScripti raamistik veebirakenduste loomiseks. See põhineb Model-View-Controlleri (MVC) arhitektuurimustril.

Ember on peamiselt mõeldud skaleeritavate ja üheleheliste veebirakenduste (ingl single-page application) loomiseks, kuid see võimaldab luua ka arvuti- ja mobiilirakendusi. Emberi raamistikku kasutavad veebilehed nagu LinkedIn, Netflix, Heroku, Microsoft ja TED. Üks silmapaistvamaid näiteid arvutirakendusest on Apple Music.

Arhitektuur
Ember on võimalik liigitada viieks kihiks.

Marsruudid
Marsruudid (ingl routes) ehk veebiaadressid on Emberi üks tähtsaim osa. Ember kasutab veebiaadresse selleks, et defineerida mudelid, mida komponendid hiljem kasutama ja kuvama hakkavad.

Veebiaadresse saab määrata mitmel viisil:

 rakenduse esmasel laadimisel;
 veebiaadressis manuaalselt muudatusi tehes;
 klõpsates rakendusesisest linki;
 tehes rakenduses konkreetse toimingu.

Pärast veebiaadressi määramist antakse aadress edasi vastavale töötlejale (ingl route handler), mis kas visualiseerib (ingl rendering) valmis malli või laadib mudeli.

Mallid
Mallid (ingl templates) on mõeldud selleks, et organiseerida HTML-koodi ja visualiseerida kasutajaliidest. Ember kasutab Handlebars mallide teeki (ingl handlebars templating library), mis sisaldab staatilist HTML-i ja võimaldab loogeliste sulgude vahel välja kutsuda dünaamilist sisu. Sellist dünaamilise sisu kasutamist nimetatakse andmete sidumiseks (ingl data binding). Muutuja või atribuut, mida loogeliste sulgude vahel kasutatakse, defineeritakse väljaspool HTML-i. Uuendades muutuja väärtust, uuendatakse automaatselt ka malli.

Näide:

app/templates/application.hbsTere hommikust, <strong>{{eesnimi}} {{perenimi}}</strong>!app/controllers/application.jsimport Controller from '@ember/controller';

export default Controller.extend({
  eesnimi: 'Yehuda',
  perenimi: 'Katz'
});

Mudelid
Mudelid on objektid, mis sisaldavad kasutajaliideses kuvatavaid andmeid. Erinevalt levinud lahendusest laadida ja salvestada mudelid serverisse (ning sealt andmed omakorda andmebaasi), võimaldab Ember mudelid salvestada mällu nii, et serveri hostimine pole vajalik.

Mudeleid on võimalik käsitleda ka läbi Ember Data, mis on Emberi projektide andmete haldamise teek. Küll aga ei ole see projektide puhul kohustuslik element.

Komponendid
Komponendid kontrollivad kasutajaliidest ja koosnevad kahest osast – Handlebarsi süntaksit kasutades kirjutatud mallist ning JavaScriptis kirjutatud lähtekoodist. Lähtekood määrab komponendi käitumise ehk sisaldab rakenduse funktsionaalsuse tagamiseks vajalikke meetodeid ja atribuute.

Komponendi põhiideeks on muuta märgistuskeel ja kujundus korduvkasutatavaks koodiks.

Hooks
Hook'''id on Emberi raamistiku meetodid, mis kutsutakse välja automaatselt programmi käivitudes. Hook'id seavad rakenduse tööks valmis kõik eelnevad kihid ehk marsruudid, mallid, mudelid ja komponendid.

 Ember CLI 
Ember CLI on ametlik käsurea utiliit (ingl command line utility), mis on välja töötatud Emberi rakenduste arendamiseks, haldamiseks ja testimiseks. Ember CLI tagab kasutajale standardse projekti struktuuri, arendamiseks vajalikud tööriistad ja addon'' süsteemi. Selle eesmärgiks on lasta kasutajal keskenduda kohe rakenduse arendamisele, mitte niivõrd rakendust jooksutava süsteemi seadistamisele.

Ember CLI toetab nii npm-i kui ka yarn-i.

Viited 

Tarkvararaamistikud