Tema
/
Interneto svetainių kliento dalies kūrimas JS

main.js — vaizdai prenumeruojasi patys

Belieka prenumeruoti. Kodo stulpelyje — main.js su vienintele subscribe() registracija. Tai — visa magija: viena vieta, nustatoma vieną kartą, pakeičia visus išbarstytus rankinius perpiešimus iš 8 pamokos.

subscribe(() => {
  render();              // galerija
  renderCollection();    // kolekcija (pakaitalas iki 10 pamokos)
  renderHome();          // navigacijos skaitiklis
});

Palygink kelią:

8 PAMOKA:  kiekvienas veiksmas → renderGallery() + renderCollection() + renderHome()
           (ir jei vieną pamiršai — tylus melas)

9 PAMOKA:  kiekvienas veiksmas → notify()
           notify() → viena subscribe() → atsinaujina, kas reikia

Skirtumas esminis: veiksmai nebežino apie vaizdus. toggleFavorite, removeFavorite, updateFavorite — visi baigiasi notify() ir niekada nemini renderGallery. Vaizdus jungia viena vieta. Nėra ko pamiršti.

Patikrink.

1. Galerijoje paspaudi ♡ → kortelė užsipildo, nav skaitiklis pakyla, kolekcija atsinaujina — VIENU paspaudimu.
2. Perkrauk puslapį → mėgstamiausi VIS DAR ten (localStorage).
3. Pašalink iš kolekcijos → grįžti į galeriją, ♡ jau tuščias. Melo NEBĖRA.

Spąstai (localStorage — tik tekstas). localStorage saugo tik eilutes. Objektą reikia JSON.stringify rašant ir JSON.parse skaitant. Pamiršk — ir gausi "[object Object]" vietoj duomenų. Ir prisimink apsaugą: JSON.parse sugadintam tekstui meta klaidą, tad skaitymas visada try/catch viduje.

Pastebėk. Nuo šios pamokos kiekviena funkcija (kolekcija, formos, modalai) tik skaitys getState() ir kvies notify(). Rankinių perpiešimų daugiau nebus — visą kursą.