HTML Academy · Les

template gebruiken voor rendering met JavaScript

Combineer templates met JavaScript-lussen voor dynamische lijsten

Les 3 van 413 stappen

template gebruiken voor rendering met JavaScript is een gratis HTML Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject HTML Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus HTML Academy bevat in totaal 4 lessen.

Het element template

Het element <template> bevat HTML die pas wordt weergegeven nadat JavaScript deze heeft gekloond en ingevoegd. De inhoud is inactief — scripts worden niet uitgevoerd, afbeeldingen worden niet geladen en stijlen worden niet toegepast — totdat het template wordt geactiveerd.

Template-inhoud benaderen

De inhoud van een template bevindt zich in een DocumentFragment bij template.content. Om deze te gebruiken, kloon je het fragment: const clone = template.content.cloneNode(true). Het argument true voert een diepe kloon uit, inclusief alle afstammelende knooppunten.

Template-instanties weergeven

Pas de kloon aan voordat je deze invoegt: zoek elementen binnen de kloon, stel tekstinhoud in en voeg eventlisteners toe. Voeg de kloon daarna toe aan de DOM: container.appendChild(clone). Elke aanroep van cloneNode() maakt een onafhankelijke kopie — je kunt de ene kopie aanpassen zonder de andere te beïnvloeden.

const tmpl = document.getElementById("card-template");
function renderCard(data) {
  const clone = tmpl.content.cloneNode(true);
  clone.querySelector(".title").textContent = data.title;
  clone.querySelector(".body").textContent = data.body;
  container.appendChild(clone);
}

Lijsten weergeven vanuit templates

Combineer templates met Array.forEach of Array.map om lijsten weer te geven: kloon voor elk item in de gegevens het template, vul de waarden in en voeg de kloon toe aan een lijstcontainer. Dit patroon lijkt op het gebruik van een framework, maar is gebouwd met standaard-HTML en JavaScript.

Een template voor tabelrijen

Definieer een <template> met daarin een <tr> met cellen. Kloon het template en vul het voor elke gegevensrij in. Zo vermijd je het samenvoegen van tekenreeksen voor het genereren van HTML — escapen is niet nodig, omdat je textContent gebruikt in plaats van innerHTML.

Template-activering is expliciet

Templates worden nooit automatisch weergegeven. Daardoor zijn ze veilig voor het opslaan van fragmenten die voorwaardelijk worden weergegeven: toon een template met "geen resultaten" alleen wanneer een zoekopdracht niets oplevert, een fouttemplate alleen bij een netwerkfout en een laad-skelet tijdens het ophalen van gegevens.

Geneste templates

Een template kan andere templates bevatten — geneste templates blijven inactief binnen het DocumentFragment van het buitenste template. Zo kun je onderdeelachtige hiërarchieën maken waarin een buitenste template de binnenste templates kloont en vervolgens naar behoefte activeert.

Bereikgebonden stijlen in templates

Stijlen binnen een tag <style> van een template worden niet op het document toegepast — ze blijven inactief totdat het template als instantie wordt gebruikt en de inhoud naar de actieve DOM wordt verplaatst. Zo kunnen templates hun eigen stijlen bevatten zonder de pagina te vervuilen.

Template versus innerHTML

Het parsen van innerHTML is synchrone verwerking van een HTML-tekenreeks — HTML wordt elke keer opnieuw geparseerd. template.cloneNode() kopieert een al geparseerde structuur. Bij herhaalde weergave van dezelfde structuur is het klonen van een template sneller en vermijd je XSS-risico's door het samenvoegen van tekenreeksen.

Beperkingen van gegevensbinding

Het element template heeft geen ingebouwde gegevensbinding — je moet elke kloon handmatig doorzoeken en vullen. Voor complexe behoeften op het gebied van gegevensbinding is een framework of bibliotheek geschikter. Templates zijn bedoeld voor eenvoudige, handmatige weergavepatronen zonder de extra belasting van een framework.

Browserondersteuning

Het element template wordt door alle moderne browsers ondersteund (IE11 had gedeeltelijke ondersteuning). Voor omgevingen die IE moeten ondersteunen, kun je een polyfill gebruiken door de template-inhoud bij het initialiseren te parsen. Gebruik template in moderne projecten zonder polyfill.

Kennistoets

Waarom heeft template.content.cloneNode(true) de voorkeur boven innerHTML voor herhaalde weergave?

Samenvatting

Het element template bevat inactieve, vooraf geparseerde HTML-fragmenten. Door template.content te klonen maak je onafhankelijke instanties voor handmatige gegevensbinding. In combinatie met het instellen van textContent (zonder XSS) maken templates frameworkachtige lijstweergave, voorwaardelijke UI en herbruikbare HTML-patronen mogelijk met alleen standaardbrowser-API's.

Gratis beginnen

Leer HTML met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
40
Lessen
159

Veelgestelde vragen

Is de les “template gebruiken voor rendering met JavaScript” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad HTML Academy, waaronder “template gebruiken voor rendering met JavaScript”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus HTML Academy bevat in totaal 4 lessen.

Wat leer ik in “template gebruiken voor rendering met JavaScript”?

Combineer templates met JavaScript-lussen voor dynamische lijsten Je oefent met HTML Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met HTML Academy te beginnen?

Ervaring vooraf is niet nodig. HTML Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “template gebruiken voor rendering met JavaScript”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over HTML Academy?

Ja. Elke les over HTML Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Het template-element: inactieve inhoud
  2. Templates klonen met cloneNode
  3. template gebruiken voor rendering met JavaScript
  4. Templates versus innerHTML: beveiliging
← Terug naar HTML Academy