Tema
/
Interneto svetainių kliento dalies kūrimas JS

js/views/gallery.js — tinklelis su DocumentFragment

Kodo stulpelyje — js/views/gallery.js. renderGallery(pictures) išvalo tinklelį, sudeda visas korteles į DocumentFragment ir įdeda jį vienu ėjimu. (Kol kas nuotraukas paduodam kaip argumentą; 8 pamokoje jos ateis iš centrinės būsenos.)

Prieš tai index.html viduje reikia tinklelio konteinerio:

<div id="gallery" class="grid"></div>

(class="grid" — CSS tinklelis; stiliai jau pateikti style.css.)

Ir main.js vietoj teksto dabar piešia galeriją:

import { renderGallery } from './views/gallery.js';
// ...load() viduje, pavykus:
renderGallery(pictures);

Visas renderGallery — trys žingsniai: išvalyk (innerHTML = ''), sudėk į fragmentą, įdėk vieną kartą. Paskutinė eilutė — revealOnScroll(...) — įjungia „išnyrantį" pasirodymą (kitą žingsnį).

Patarimas. gallery.innerHTML = '' pradžioje yra svarbus: be jo kiekvienas renderGallery kviesdamas pridėtų korteles prie senų, ir jos dubliuotųsi. Perpiešimo modelis paprastas: išvalyk viską, tada pastatyk iš naujo iš duomenų. Tai neefektyviau nei „taškinis" atnaujinimas, bet daug paprasčiau ir mažiau klaidų — o būtent tai karkasai vėliau optimizuoja už tave (virtualus DOM).