JavaScript: Anleitungen und Praxiswissen | Seite 17 | mironsoft Blog
JavaScript
-
19.03.2025
Ein React Monorepo mit Turborepo bündelt mehrere Apps und geteilte Pakete in einem Repository, ohne dass jeder Build alles neu kompilieren muss. Dieser Artikel zeigt die Workspace-Struktur, die turbo.json-Konfiguration, Remote Caching und eine CI-Pipeline, die nur tatsächlich betroffene Pakete baut.
-
19.03.2025
Tree Shaking ist der Prozess, mit dem moderne Bundler ungenutzten JavaScript-Code aus dem finalen Bundle entfernen. Was simpel klingt, hat komplexe Voraussetzungen: ES-Module sind Pflicht, bestimmte Code-Muster blockieren Tree Shaking, und falsch konfigurierte sideEffects-Flags können gesamte Module eliminieren oder bewahren — mit messbaren Auswirkungen auf Ladezeiten.
-
14.03.2025
Encore zu AssetMapper zu migrieren bedeutet nicht, das Frontend neu zu schreiben, sondern Entrypoints, npm-Pakete und Sass-Dateien Stück für Stück auf Symfonys eingebauten Importmap-Mechanismus zu übertragen, ohne dass Node.js für den Produktions-Build noch zwingend nötig ist.
-
14.03.2025
Memory Leaks in JavaScript-Anwendungen sind unsichtbar – bis der Browser abstürzt oder die Seite nach Minuten spürbar langsamer wird. Heap Snapshots, Allocation Timelines und das Retainer-Diagramm in Chrome DevTools machen unsichtbare Speicherlecks sichtbar, lokalisierbar und behebbar.
-
14.03.2025
Touch Gesten in Vue Apps scheitern selten an der Grundidee, sondern an Details wie Scroll-Konflikten, fehlender Passive-Event-Konfiguration und ruckelnden Animationen unter Last. Mit Pointer Events, VueUse-Composables und sauberer Trennung von Erkennung und Reaktion lassen sich Swipe-to-Delete, Drag-and-Drop und Pinch-to-Zoom robust und performant umsetzen.
-
12.03.2025
Symbol.iterator ist der bekannteste Vertreter der well-known Symbols, aber laengst nicht der einzige. Dieser Artikel zeigt im Detail, wie Symbol.toPrimitive, Symbol.hasInstance und Symbol.toStringTag das Verhalten eigener Objekte bei Typumwandlung, instanceof-Pruefungen und Debug-Ausgaben gezielt steuern, und wie eigene Symbole kollisionsfreie Objekt-Keys ermoeglichen.
-
12.03.2025
Eine Preistabelle mit Umschalter zwischen monatlicher und jährlicher Abrechnung ist bei SaaS-Produkten und Abo-Modellen Standard, weil sie den Jahresrabatt direkt sichtbar macht und die Kaufentscheidung erleichtert. Mit Alpine.js entsteht eine Preistabelle, die Beträge reaktiv umrechnet, Rabatt-Badges anzeigt und den empfohlenen Tarif hervorhebt, komplett ohne Page Reload und ohne serverseitige Logik im Frontend.
-
08.03.2025
Wer für jedes Listenelement einen eigenen Event-Listener registriert, baut eine Speicher- und Performance-Falle. Event Delegation nutzt Event Bubbling und ermöglicht mit einem einzigen Listener die Behandlung von Events auf beliebig vielen Elementen – auch auf solchen, die erst später dynamisch zum DOM hinzugefügt werden.
-
05.03.2025
Fetch und XHR beim Seitenende zu nutzen ist eine Race-Condition gegen den Browser. Wenn der Tab geschlossen oder die Seite entladen wird, bricht der Browser offene Anfragen ab. navigator.sendBeacon überträgt Daten garantiert, ohne die Navigation zu verzögern – das ist die richtige Lösung für Analytics, Session-Daten und Exit-Tracking.
-
27.02.2025
=== vergleicht Objekte nur über Referenzidentität, und JSON.stringify scheitert an Schlüsselreihenfolge, Maps, Sets und Dates. Eine selbst geschriebene Deep-Equality-Funktion vergleicht Werte rekursiv nach Struktur statt nach Referenz und deckt dabei genau die Datentypen ab, an denen die einfachen Ansätze regelmäßig scheitern.