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:
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.hbs"
Tere hommikust, &lt;strong&gt; &lt;/strong&gt;!
"app/controllers/application.js"
import 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".
"Hookid on Emberi raamistiku meetodid, mis kutsutakse välja automaatselt programmi käivitudes. "Hookid 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 käitava süsteemi seadistamisele.
Ember CLI toetab nii npm-i kui ka yarn-i.