Interactivated logo

Hoe je aangepaste JavaScript-webcomponenten bouwt voor je webwinkel

04 Dec
Alle blogberichten

De wereld van e-commerce is ongelooflijk competitief. Statistieken tonen aan dat er al miljoenen online winkels actief zijn, en er komen er elke dag meer bij. Opvallen in zoʼn drukke branche is niet gemakkelijk, en ondernemers moeten er alles aan doen om de concurrentie voor te blijven en klanten aan te trekken.

Een van de beste manieren om je stempel te drukken op de wereld van e-commerce is door de meest volledig functionele en goed ontworpen winkel te hebben. En JavaScript-webcomponenten kunnen daar enorm bij helpen, waardoor je nieuwe manieren krijgt om de navigatie en gebruikerservaring van je site te verbeteren. Deze handleiding behandelt de basisprincipes van webcomponenten en hoe je ze kunt maken. Om te beginnen een korte definitie: webcomponenten zijn aangepaste JavaScript-elementen die gebruikers naar eigen wens kunnen aanpassen en definiëren. Je kunt ze ook zien als herbruikbare, ingekapselde stukjes code, die je kunt aanpassen met de precieze styling en functionaliteit die je wilt. Ze zijn zeer veelzijdig en bieden een scala aan voordelen, niet alleen voor webwinkels, maar ook voor andere websites.

De voordelen van webcomponenten voor e-commerce

Er zijn veel voordelen verbonden aan JavaScript-webcomponenten voor allerlei soorten websites en online bedrijven, waaronder webwinkels. Hier zijn enkele van de grootste voordelen en redenen om te overwegen webcomponenten in uw winkel te gebruiken:

  • Herbruikbaarheid: Zoals hierboven uitgelegd, zijn webcomponenten oneindig herbruikbaar op verschillende websites en in verschillende projecten. Dus, als je er eenmaal een hebt gemaakt, kun je er veel waarde uit halen door hem voor meerdere sites en paginaʼs te gebruiken – vooral handig als je op meer dan één e-commerceplatform werkt.
  • Gebruiksgemak: Het maken van webcomponenten vereist een zekere mate van vaardigheid en ervaring. Maar vergeleken met andere vormen van programmeren en websiteontwerp zijn ze relatief eenvoudig te gebruiken, waardoor grote, complexe paginaʼs kunnen worden opgedeeld in kleinere en beter te begrijpen onderdelen.
  • Onafhankelijk testen: Je kunt webcomponenten zowel afzonderlijk ontwikkelen als testen. En dat is erg handig bij het oplossen van problemen of het maken van kleine aanpassingen, omdat je niet het risico loopt je hele site te beschadigen of te verstoren.
  • Verbetering van de gebruikerservaring: Webcomponenten kunnen op verschillende manieren worden gebruikt om de gebruikerservaring van bezoekers van je site te verbeteren. Ze kunnen bijvoorbeeld helpen om de webwinkel gemakkelijker te navigeren en zelfs de conversies te verhogen als ze op de juiste manier worden gebruikt.
  • Veelzijdigheid: Webcomponenten zijn bovendien eindeloos veelzijdig. Ze kunnen zo simpel of zo complex zijn als je wilt. Een component kan bijvoorbeeld een kleine, gepersonaliseerde begroeting voor elke gebruiker weergeven, terwijl andere de manier waarop mensen door je webwinkel navigeren volledig kunnen veranderen.

Webcomponenten bouwen

Nu we de basisprincipes en voordelen van webcomponenten hebben besproken, gaan we stap voor stap dieper in op het daadwerkelijke proces van het maken ervan. Voor deze handleiding gebruiken we een eenvoudig "Hallo wereld"-voorbeeld. Het is handig om het basisconcept van hoe webcomponenten werken te illustreren, maar er zijn veel geavanceerdere componenten waarmee je aan de slag kunt zodra je de basisprincipes kent.

De klasse definiëren en de HTMLElement-interface uitbreiden

Webcomponenten beginnen doorgaans met het definiëren van een ES2015-klasse, die later kan worden gebruikt om het element te besturen. Je kunt het elke naam geven die je wilt, maar voor de doeleinden van deze handleiding gebruiken we "HelloWorld".

Vervolgens, aangezien het hele doel van webcomponenten is om de HTMLElement-interface uit te breiden, moet de code dit concept introduceren. Daarvoor gebruiken we simpelweg de zin "extends HTMLElement". Met deze nieuwe toevoeging ziet onze webcomponentdefinitie er dus als volgt uit:

class HelloWorld extends HTMLElement {

De functie of het doel van de webcomponent toevoegen

Nu de basisintroductie achter de rug is, kunt u aan de slag met de hoofdfunctie van uw component. In ons "HelloWorld"-voorbeeld willen we dat de component simpelweg wordt gebruikt om een "Hallo wereld!"-bericht op de pagina weer te geven. Daarvoor moeten we de gewenste tekst definiëren en een "connectedCallback()" gebruiken, die wordt gebruikt wanneer de webcomponent wordt toegevoegd aan een Document Object Model, oftewel DOM. De code ziet er nu als volgt uit: class HelloWorld extends HTMLElement { // component verbinden connectedCallback() { this.textContent = "Hallo wereld!"; } } wpheading { level 3 } De aangepaste webcomponent definiëren /wp:heading -->

Om de webcomponent daadwerkelijk te kunnen gebruiken, moet deze ten slotte worden geregistreerd bij de CustomElementRegistry. Dit wordt gedaan met behulp van de code "customElements.define()", wat ons het volgende oplevert:

class HelloWorld extends HTMLElement {
// component verbinden
connectedCallback()
{ this.textContent = "Hallo wereld!";
}
}
customElements.define( "hello-world", HelloWorld );

Met deze laatste regel toegevoegd, is ons "hello-world" element nu gekoppeld aan de klasse "HelloWorld". Telkens wanneer we dit webcomponent willen gebruiken, kunnen we eenvoudig de HTML gebruiken. Let op: een streepje is altijd nodig bij het benoemen en definiëren van uw aangepaste webcomponenten, zodat ze geen conflicten of verwarring veroorzaken met bestaande HTML-elementen.

Het verbeteren van de aangepaste webcomponent

Hoe bouw je aangepaste JavaScript-webcomponenten voor Uw e-commercewinkel 2

De bovenstaande stappen laten zien hoe je een zeer eenvoudige webcomponent maakt, maar die is niet erg nuttig. Het enige wat het doet, is een enkel bericht weergeven, zonder enige vorm van personalisatie of variatie. Om het bruikbaar te maken voor sites zoals e-commercewinkels, moeten we het verbeteren. Dit kan worden gedaan door verschillende HTML-attributen toe te voegen om de functie aan te passen en de uitvoertekst te wijzigen.

We zouden het bericht bijvoorbeeld kunnen aanpassen naar "Hallo Mary!" in plaats van "Hallo wereld!" Dit houdt in dat we een nieuw HTML-attribuut toevoegen, zoals hieronder:

<hello-world name="Mary"></hello-world>

We moeten ook de JavaScript-code dienovereenkomstig aanpassen, door de constructor()-functie van de HelloWorld-klasse en de super()-methode te gebruiken, en door een standaardnaam-eigenschap te definiëren:

class HelloWorld extends HTMLElement {
constructor() {
super();
this.name = "World";
}

We kunnen vervolgens de eigenschap observedAttributes() toevoegen om de component een reeks observeerbare eigenschappen te laten bieden, zoals volgt:

static get observedAttributes() {
return ["name"];
}

Vervolgens wordt een attributeChangedCallback() toegevoegd, omdat dit nodig is wanneer we een attribuut in de HTML-code definiëren of wijzigen.

attributeChangedCallback(property, oldValue, newValue) {
if (oldValue === newValue) return;
this[ property ] = newValue;
}

Tot slot kunnen we de connectedCallback() gebruiken om de componentcode af te ronden.

connectedCallback() {
this.textContent = `Hallo ${ this.name }!`;
}

Met deze code is het mogelijk om een aangepaste begroetingsboodschap te geven om letterlijk "Hallo" te zeggen tegen de bezoekers van uw webshop.

Essentiële technologieën van webcomponenten

Er zijn drie belangrijke technologieën die webcomponenten vormen en de manieren waarop we ze gebruiken:

Aangepaste elementen

Aangepaste elementen zijn HTML-elementen met hun eigen aangepaste sjablonen, gemaakt met behulp van JavaScript APIʼs. Bij het bouwen van een nieuwe webcomponent is het altijd belangrijk om een gloednieuwe HTML-tag te definiëren, zoals en gebruik vervolgens JavaScript om het doel en de rol van het element te definiëren.

Shadow DOM

De Shadow DOM is in wezen een aparte DOM die je aan je webcomponenten kunt koppelen met behulp van de volgende regel code:

const shadow = this.attachShadow({ mode: "closed" });

De Shadow DOM kan open of gesloten zijn. Wanneer de Shadow DOM open is, betekent dit dat JavaScript in de omringende pagina toegang heeft tot de Shadow DOM. Als deze gesloten is, betekent dit dat de Shadow DOM alleen toegankelijk is binnen het webcomponent zelf. Het gebruik van de Shadow DOM is een goede manier om webcomponenten te encapsuleren, zodat de exacte structuur en stijl van het component behouden blijven en er geen interferentie met de rest van de pagina optreedt. Omdat het nogal lastig is om alle HTML binnen individuele webcomponenten te definiëren, geven ontwikkelaars vaak de voorkeur aan HTML-sjablonen. Dit zijn stukjes HTML-code die webcomponenten kunnen gebruiken.

How to Build Custom JavaScript Web Components for Your E-Commerce Store 1

Door HTML-sjablonen te gebruiken, kunt u aanpassingen en wijzigingen aanbrengen aan De code kan worden aangepast zonder dat er veel JavaScript-code hoeft te worden herschreven. Slots zijn ook gemakkelijker te definiëren binnen HTML zelf met behulp van eenvoudige "