📖 Teorija
Namų darbas — vienas notify()
Namų darbas — vienas notify().
- Sukurk
js/state.jssusubscribe/notify,getState,loadFavorites/persistFavorites(su apsauga) irtoggleFavorite.main.js— vienasubscribe()registracija. - Panaikink 8 pamokos klaidą. Įsitikink, kad joks veiksmas nebekviečia
renderGallery/Collection/Hometiesiogiai — tiknotify(). Pakartok 8 pamokos scenarijų (išsaugok, pašalink iš kolekcijos, grįžk į galeriją) — ♡ dabar teisingas. - Persistencija. Paspaudi kelis ♡, perkrauk puslapį — mėgstamiausi liko. Atidaryk DevTools → Application → Local Storage ir rask
cosmos_favoritesraktą su JSON. - Sulaužyk saugyklą. Local Storage viduje rankomis įrašyk į
cosmos_favoritesnetaisyklingą tekstą (pvz.{{{). Perkrauk — programa NELŪŽTA, tik pradeda nuo tuščio sąrašo (apsauga veikia). - Papildomai: pridėk
removeFavorite(date)ir įsitikink, kad jam užtenkapersistFavorites()+notify()— jokio vaizdo minėti nereikia.
Privalomi testai:
- Vieno paspaudimo testas: ♡ atnaujina galeriją, kolekciją ir skaitiklį iš karto.
- Persistencijos testas: po perkrovimo mėgstamiausi vietoje.
- Apsaugos testas: sugadintas JSON saugykloje neužmuša programos.
Atsiskaitymui: ekrano nuotraukos: (1) ♡ atnaujina viską vienu paspaudimu, (2) cosmos_favorites DevTools'e, (3) programa veikia po sugadinto JSON.
Toliau. Turim tvarkingą būseną su pub/sub. 10 pamokoje pastatysim kolekcijos lentelę: rikiuojami stulpeliai, puslapiavimas ir paieška — viskas skaito
getState()ir prenumeruoja. Ir sutiksim klastingąArray.sort()spąstą.