
Taal 🇳🇱 Nederlands
Achtergrond
API
Extensies ontwikkelen
Context
FastComments biedt de mogelijkheid om onze kernfunctionaliteit uit te breiden via scripts die we Extensies noemen.
Een Extension kan extra opmaak toevoegen aan de reactie-widget, gebeurtenisluisteraars, en willekeurige code uitvoeren.
Hier vindt u voorbeelden van extensies die we in productie hebben, evenals documentatie over hoe u extensies schrijft.
De levenscyclus van een extensie 
Het script voor elke extensie wordt opgehaald en aangeroepen voordat de commentaar-widget begint met het ophalen van de eerste set reacties en het renderen van de UI.
Bij het initiële laden wordt de volgende data aan het extensie-object toegevoegd:
config- Een verwijzing naar hetconfigobject.translations- Een verwijzing naar hettranslationsobject.commentsById- Een verwijzing naar alle reacties per id.root- Een verwijzing naar de root DOM-node.
Extensies moeten de gewenste functies overschrijven, die de commentaar-widget op de juiste momenten zal aanroepen.
Een extensie definiëren 
De kleinste mogelijke extensie zou zijn:
Run 
Sla dit voor dit voorbeeld op als my-extension.js en maak het beschikbaar via https://example.com/my-extension.min.js.
Deze extensie doet niets; bij het laden haalt hij het extensieobject op dat door de kern van de commentaarbibliotheek is aangemaakt.
Dit Extension-object is een singleton en wordt niet gedeeld met andere extensies.
Vervolgens, om onze extensie te laden, moeten we de commentaarwidget hierover informeren. Bijvoorbeeld:
Run 
Voor functionele voorbeelden, zie de volgende sectie.
Voorbeeldextensies 
Bij FastComments schrijven we onze eigen extensies, met gebruik van dezelfde API. Je kunt de niet-gecomprimeerde code voor deze extensies bekijken op de volgende eindpunten:
Donkere modus
De Donkere modus-extensie wordt conditioneel geladen wanneer een "dark"-pagina wordt gedetecteerd. Deze extensie voegt eenvoudig wat CSS toe aan de reactie-widget. Op deze manier hoeven we de CSS voor donkere modus niet te laden wanneer dat niet nodig is.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderatie
Wanneer de huidige gebruiker moderator is, gebruiken we de moderatie-extensie.
Dit is een goed voorbeeld van het toevoegen van klik-gebaseerde event listeners, het doen van API-aanvragen, en het toevoegen aan het reactiemenu en de reactiegebieden.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Livechat
De Livechat-extensie (in combinatie met andere configuratie en styling) verandert de reactie-widget in een livechatcomponent.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Het extensie-object 
Het extensieobject bestaat uit de volgende definitie:
Run 
De extensie-API 
Interactie met de Extension is eenvoudig: we definiëren gewoon referenties naar functies die we willen aanroepen.
Om voort te bouwen op het eerdere voorbeeld, laten we zeggen dat we HTML aan de bovenkant van elke reactie willen toevoegen:
Run 
Wanneer je HTML op deze manier terugstuurt, wordt deze samengevoegd in de UI via een dom-diffing-algoritme.
Het handmatig triggeren van het opnieuw renderen van een reactie
We kunnen wachten op de eerste paginalading en handmatig een reactie opnieuw renderen door reRenderComment aan te roepen:
Run 