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).
localStoragesaugo tik eilutes. Objektą reikiaJSON.stringifyrašant irJSON.parseskaitant. Pamiršk — ir gausi"[object Object]"vietoj duomenų. Ir prisimink apsaugą:JSON.parsesugadintam tekstui meta klaidą, tad skaitymas visadatry/catchviduje.
Pastebėk. Nuo šios pamokos kiekviena funkcija (kolekcija, formos, modalai) tik skaitys
getState()ir kviesnotify(). Rankinių perpiešimų daugiau nebus — visą kursą.