Libraries
Libraries (Bibliotheken) sind wiederverwendbare Codeblöcke. Diese Codeblöcke müssen nicht Open Source sein.
Ein Codeblock in einem separaten JavaScript-File ist quasi eine Bibliothek.
Two Types of Libraries
Section titled “Two Types of Libraries”- Automatische Bibliotheken
- Manuelle Bibliotheken
Automatic Libraries
Section titled “Automatic Libraries”Automatische Bibliotheken führen den Code automatisch aus, sobald die Bibliothek geladen wird. Wir brauchen diese Bibliotheken also nur zu importieren, und alles läuft automagisch ab.
Ein gutes Beispiel dafür sind Polyfills. Diese finden fehlende Funktionen im Browser und stellen Support dafür bereit. Dafür muss nur eine JavaScript-Datei inkludiert, aber kein Code geschrieben werden.
Komponenten können ebenfalls in automatische Bibliotheken umgewandelt werden. Dafür muss
- HTML und CSS laut der Dokumentation der Komponente geschrieben und
- die entsprechende JavaScript-Datei geladen werden
- der Rest sollte von selbst gehen …
Manuelle Bibliotheken
Section titled “Manuelle Bibliotheken”Manuelle Bibliotheken benötigen JavaScript. Dafür müssen wir zwei Dinge tun:
- die JavaScript-Datei laden
- die Funktion(en) der Bibliothek manuell im JavaScript-Code aufrufen
Die meisten Bibliotheken funktionieren nicht ohne Input des Benutzers.
Ein Beispiel ist DOMPUrify (sanitizes an HTML-String, man muss also einen HTML-String übergeben), ein anderes ist zlFetch (man übergibt einen Endpoint und zlFetch macht einen Request).
Komponenten können auch in Manuelle Bibliotheken umgewandelt werden. Diese werden charakterisiert durch:
- viele Konfigurationsoptionen
- User können eigenen Code (über Callbacks) ausführen
- User können instance methods verwenden
Should you build an Automatic or Manual Library?
Section titled “Should you build an Automatic or Manual Library?”Automatische Bibliotheken sind leichter zu nutzen, aber der User hat weniger Kontrolle darüber. Er muss sich genau an die HTML- und CSS-Vorgaben halten.
How to include libraries in your project
Section titled “How to include libraries in your project”Es gibt drei Wege, wie man Bibliotheken einbindet:
- mit dem
<script>-Tag - mit ES6 Modulen
- mit dynamischen Importen