Verstehen, wie moderne JavaScript-Frameworks funktionieren
- Das Erstellen eines eigenen JavaScript-Frameworks hilft beim Lernen.
- Mit „modernen JavaScript-Frameworks“ sind Frameworks nach React gemeint.
- Diese Frameworks wurden von React inspiriert, haben sich aber in eine ähnliche Richtung weiterentwickelt.
Merkmale moderner Frameworks
- Einsatz von Reaktivität für DOM-Updates.
- Einsatz von Template-Klonen (
cloning templates) für das DOM-Rendering. - Verwendung moderner Web-APIs wie
<template>undProxy.
Reaktivität
- Es wird oft erwähnt, dass React nicht reaktiv ist.
- Moderne Frameworks priorisieren Leistung mit einem Push-basierten Reaktivitätsmodell.
- Mit
Proxywird sichergestellt, dass das DOM bei jeder Zustandsänderung aktualisiert wird.
DOM-Baum-Klonen
- Die Technik, HTML mit dem
<template>-Tag einmal zu parsen und anschließend den gesamten Inhalt schnell zu klonen, ist effizient. - Diese Methode wird in verschiedenen JavaScript-Frameworks eingesetzt.
Moderne JavaScript-APIs
<template>undProxysind APIs, die beim Aufbau eines Reaktivitätssystems helfen.- Mit Tagged Template Literals wird eine einfache HTML-Template-API erstellt.
Schritte zum Aufbau von Reaktivität
- Reaktivität, die Zustandsverwaltung und DOM-Updates bei Zustandsänderungen definiert, bildet die Grundlage des Frameworks.
- Mit
Proxywerden Zustandsänderungen erkannt, und mitqueueMicrotaskwerden Updates effizient verwaltet.
DOM-Rendering-Schritte
- Mit der
html-Funktion wird ein DOM-Baum aufgebaut und effizient aktualisiert. - HTML-Templates werden mit Tagged Template Literals geschrieben, und mit
WeakMapwird das HTML-Parsen optimiert.
Kombination von Reaktivität und DOM-Rendering
- Mit
createEffectwird das DOM abhängig vom Zustand aktualisiert. - Es wird so implementiert, dass Text bei Zustandsänderungen automatisch aktualisiert wird.
Nächste Schritte
- Es gibt verschiedene Möglichkeiten, das DOM-Rendering-System zu verbessern.
- Ziel ist es, Templates nur einmal zu parsen, Bindings nur einmal einzurichten und Updates zu minimieren.
Meinung von GN⁺
Das Wichtigste an diesem Artikel ist, die Kernkonzepte moderner JavaScript-Frameworks und ihre Implementierung zu verstehen und durch die praktische Erfahrung, ein eigenes Framework zu bauen, zu lernen. Dieser Ansatz kann vor allem für Softwareingenieure am Anfang ihrer Laufbahn eine interessante und nützliche Lernerfahrung sein, weil er Einblicke in die interne Funktionsweise von Frameworks bietet und die Möglichkeit gibt, das Gelernte praktisch anzuwenden.
1 Kommentare
Hacker-News-Kommentare
Für ein grundlegendes Verständnis dieses interessanten Themas werden folgende Materialien empfohlen:
Erläuterungen zu Missverständnissen über React und zur tatsächlichen Funktionsweise:
useMemoverhindert kein Re-Rendering; diese Rolle übernimmtReact.memo.Positive Einschätzung zu Svelte und Anwendungsbeispiele:
Verschiedene Perspektiven auf reaktive Frameworks:
Fragen und Diskussionen zur Reaktivität von React:
Frage an Personen mit viel Erfahrung mit Frontend-Frameworks: