Voor Referenties van HTML Gebouwd met Sjabloon Letters

0
10

Een ding JavaScript sjabloon letters zijn goed in is weinig blokken van HTML. Zoals:

// Waarschijnlijk uit een aantal API of wat dan ook
const data = {
titel: “Title”,
inhoud: “Inhoud”
};

const some_html = `
<div class=”module”>
<h2>${gegevens.titel}</h2>
<p>${gegevens.inhoud}</p>
</div>
`;

Maar dat is nog maar een string. Het is nog niet klaar om toe te voegen aan de DOM gewoon nog niet. En wat als we het nodig verwijzingen naar die elementen in de een of andere manier?

We hebben geschreven over een paar bibliotheken in deze trant: lit-html en hyperHTML. Die zijn vrij klein libs, maar zijn ook sorta meer over re-weergave van sjablonen op een efficiënte manier (zoals super mini Reageren).

Wat als je moet alleen de knooppunten? Dat is bijna een one-liner:

const getNodes = str => {
return new DOMParser().parseFromString(str, ‘text/html’).lichaam.childNodes;
}

Nu konden we drop, die sjabloon van letterlijke HTML rechts in de DOM:

document.lichaam.appendChild(getNodes(some_html)[0]);

Hier is die:

Zie de Pen pQyZOz door Chris Coyier (@chriscoyier) op CodePen.

Maar hoe krijgen we onze handen op de individuele bits van HTML? We niet precies verwijzingen naar alles, zelfs het hele stuk zetten we in.

Ik zag net deze kleine lib genoemd Facon dat ziet om dit te doen. Het maakt gebruik van gelabelde sjabloon letters, die is super cool:

import f van ‘facon’;

const data = {
titel: “Title”,
inhoud: “Inhoud”
};

laat de html – = f`
<div class=”module”>
<h2>${gegevens.titel}</h2>
<p>${gegevens.inhoud}</p>
</div>
`;

document.lichaam.appendChild(html);

Dit slaat op de noodzaak voor onze kleine getNodes functie, maar wat belangrijker is, we kunnen ruk uit deze referenties!

laat de html – = f`
<div class=”module”>
<h2 ref=”titel”>${gegevens.titel}</h2>
<p ref=”content”>${gegevens.inhoud}</p>
</div>
`;

laat { titel, de inhoud } = html.verzamelen();
de titel.innerText = “Titel Veranderd!”;

Hier is die:

Zie de Pen Facon Sjabloon door Chris Coyier (@chriscoyier) op CodePen.

De Jetpack WordPress plugin draait op deze site, het voeden niet alleen de gerelateerde berichten hieronder, maar de social sharing links boven, beveiliging en back-ups, Markdown ondersteuning, site search, het reactieformulier, positionering, sociale netwerk-verbindingen, en meer!