lek 6 Flashcards
DEMO slajd 7
Kako bi odstranili stolpec z ID-jem (#) iz prikaza v HTML tabeli?
ako, da v HBS (Handebars) predlogi izbrišemo vrstico, ki izpisuje {{_id}}.
Primer v list.hbs:
html
Copy
Edit
<!-- to vrstico izbrišemo -->
<td>{{_id}}</td>
Kako bi filtrirali prikazane elemente, da bi prikazali le nakupovalni listek?
V kontrolerju (NoteItemController) moramo v find() dodati pogoj za iskanje samo elementov z Category == “Shopping” ali podobno:
NoteItemModel.find({ category: ‘Shopping’ }, function (err, items) {
// …
});
Kaj prikazuje vrednost “5e7b0f4ba790143d18815a3e” in zakaj ni smiselno za uporabnika?
To je MongoDB ObjectID (unikaten identifikator dokumenta). Za uporabnika nima posebne vrednosti, zato ga običajno skrijemo.
Kaj moramo popraviti, če želimo, da uporabnik vidi samo svoje vnose?
Dodamo pogoj user: req.session.userId v poizvedbo find(), da se prikažejo samo elementi tega uporabnika.
Kaj je MERN stack?
MongoDB, Express, React, Node.js
Zakaj uporabimo React v MERN skladu?
Za čelni del aplikacije, omogoča SPA in AJAX interakcijo.
Kaj omogoča React?
Hiter, komponentni, odziven UI z uporabo JavaScript-a
plikacijo na strani odjemalca (client-side) Večja hitrost, ker se stran ne osveži v celoti ob vsakem kliku
✅ AJAX – brez ponovnega nalaganja strani API-je kličeš prek fetch/axios in samo osvežiš del podatkov
✅ SPA – Single Page Application Enotna, moderna izkušnja kot Google Docs, Facebook itd.
✅ Komponentni pristop Vsak del vmesnika je ločena komponenta (gumb, forma…) – večja ponovna uporabnost
✅ Delo samo z JavaScript-om Celotna aplikacija je napisana v JavaScript-u (tudi logika, tudi izgled)
Zakaj Express sam ni dovolj?
Renderira cel HTML, ni komponent, ni SPA.
❌ Kaj je slabost samo Expressa brez Reacta?
Server-side rendering s predlogami -počasneje, celotna stran se naloži ob vsaki zahtevi
Težje ustvarjati dinamične vmesnike-Več ročnega HTML-a, manj odzivnosti
Ni komponent-Manj strukture v kódi uporabniškega vmesnika.
Kaj je CORS?
CORS omogoča, da spletna aplikacija na eni domeni (npr. React na localhost:3000) pošlje zahtevo drugemu strežniku (npr. Express na localhost:5000). Privzeto brskalnik blokira take zahteve zaradi varnostnih razlogov. CORS to prepreči.
Katera velika podjetja stojijo za Angular in React?
Angular je razvil Google, React pa Facebook.
Kaj je Angular in kaj je React z vidika definicije?
Angular je celoten framework, medtem ko je React le library (knjižnica).
Kakšna je razlika v jeziku in načinu pisanja komponent med Angular in React
Angular uporablja HTML + TypeScript, React pa JS + JSX.
Kako poteka podatkovna vezava (data binding) v Angularju in v Reactu?
Angular uporablja 2-smerno vezavo (two-way binding), React pa enosmerno (uni-directional).
Kateri DOM uporablja Angular in kateri React?
Angular uporablja običajni DOM, React pa virtualni DOM, kar omogoča hitrejše posodabljanje vmesnika.
Kaj je razlika med res.json in res.render?
res.json vrne surove podatke (JSON), res.render vrne HTML predlogo.
Prevajalnik (compiler)
Prevajalnik vzame JavaScript ES6 kodo, jo preoblikuje in vrne JavaScript kodo v obliki, ki jo lahko interpretira brskalnik. Običajno se uporablja prevajalnik Babel.
Kaj je JSX?
Sintaktična razširitev za pisanje HTML v JavaScriptu.
Kako v JSX vključimo izraze JavaScripta?
✅ Z uporabo zavitih oklepajev {}.
❓ Ali lahko uporabimo if-else znotraj JSX?
✅ Ne, ampak lahko uporabimo pogojni (ternarni) izraz: {pogoj ? “Da” : “Ne”}.
Katere novosti prinaša ES6?
Arrow functions, razredi, let/const, predloge z Babel.
Kaj je React komponenta?
Ponovno uporabna enota vmesnika, lahko funkcijska ali razredna.
Kje se naloži prva komponenta v React aplikaciji?
V datoteki index.js z uporabo ReactDOM.render.
Kakšna je razlika med funkcijsko in razredno komponento?
Funkcijske: preproste, brez lastnega stanja (razen s useState).
Razredne: bolj kompleksne, lahko vsebujejo lastno stanje in metode življenjskega cikla.
Kaj je props?
Vhodi v komponento, ki jih nastavi nadrejena komponenta – so nespremenljivi.
Kaj je state?
Podatki, ki se lahko spreminjajo znotraj komponente.
Zagon aplikacije-na katerem portu
http://localhost:4100/