Design Systems & Component Libraries · Lektion

Performance-Optimierung

Wenden Sie Techniken an, damit Ihre Komponenten leichtgewichtig sind, effizient gerendert werden und zu einer schnellen Benutzererfahrung beitragen.

Lektion 3 von 411 Schritte

Performance-Optimierung ist eine kostenlose Design Systems & Component Libraries-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Design Systems & Component Libraries-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Design Systems & Component Libraries-Kurs umfasst insgesamt 4 Lektionen.

Warum Komponenten optimieren?

Haben Sie schon einmal eine App verwendet, die langsam oder umständlich wirkte? Häufig liegt das an nicht optimierten Komponenten. In dieser Lektion sehen wir uns Techniken an, mit denen Ihre UI-Komponenten blitzschnell und äußerst flüssig werden!

Optimierte Komponenten sorgen für eine bessere Benutzererfahrung, mehr Engagement und sogar eine verbesserte SEO. Holen wir das Beste aus der Leistung Ihrer Komponenten heraus!

Leistungsengpässe erkennen

Vor der Optimierung müssen wir wissen, was langsam ist. Moderne Browser bieten hervorragende Entwicklertools, die Ihnen dabei helfen:

  • Performance-Tab: Zeichnet die Laufzeitleistung auf und zeigt CPU-Auslastung, Rendering-Aktivität und Netzwerkanfragen.
  • Profiler: Hilft dabei, Funktionen zu identifizieren, deren Ausführung zu lange dauert.
  • Lighthouse: Ein automatisiertes Tool, das Leistung, Barrierefreiheit und mehr prüft und konkrete Verbesserungsvorschläge liefert.

Mit diesen Tools können Sie genau feststellen, an welchen Stellen Ihre Komponenten Probleme haben.

Memoization: Caching für mehr Geschwindigkeit

Ein häufiger Grund für langsame UIs sind unnötige erneute Renderings oder Berechnungen. Memoization ist eine leistungsfähige Optimierungstechnik, die dies verhindert.

Dabei werden die Ergebnisse aufwendiger Funktionsaufrufe zwischengespeichert. Treten dieselben Eingaben erneut auf, wird das gespeicherte Ergebnis zurückgegeben, anstatt die Funktion erneut auszuführen. Stellen Sie es sich als ein intelligentes Gedächtnis für Ihre Funktionen vor!

Eine Berechnung memoizieren

Sehen wir uns Memoization anhand eines einfachen JavaScript-Beispiels in Aktion an. Diese Funktion berechnet eine Fakultät (eine aufwendige Berechnung), speichert die Ergebnisse jedoch im Cache:

const memoize = (func) => {
  const cache = {};
  return (...args) => {
    const key = JSON.stringify(args); // Simple key
    if (cache[key]) {
      console.log("Fetching from cache for", key);
      return cache[key];
    }
    console.log("Calculating for", key);
    const result = func(...args);
    cache[key] = result;
    return result;
  };
};

const factorial = memoize((n) => {
  if (n === 0 || n === 1) return 1;
  let result = 1;
  for (let i = 2; i <= n; i++) {
    result *= i;
  }
  return result;
});

console.log("Factorial of 5:", factorial(5));
console.log("Factorial of 5:", factorial(5)); // Will use cache
console.log("Factorial of 3:", factorial(3));
console.log("Factorial of 3:", factorial(3)); // Will use cache

Lazy Loading für schnellere erste Renderings

Wenn eine Person Ihre App zum ersten Mal besucht, müssen nicht sofort alle Komponenten geladen werden. Mit Lazy Loading können Sie Komponenten erst dann laden, wenn sie tatsächlich benötigt werden, etwa wenn eine bestimmte Seite aufgerufen oder nach unten gescrollt wird.

Dadurch wird die Größe des initialen Bundles deutlich reduziert und der erste Paint beschleunigt. Ihre App wirkt dadurch wesentlich schneller und reaktionsfähiger.

So funktioniert Code-Splitting

Lazy Loading wird häufig durch Code-Splitting umgesetzt. Build-Tools wie Webpack oder Rollup können den Code Ihrer Anwendung in kleinere „Chunks“ aufteilen.

  • Der Haupt-Chunk enthält den erforderlichen Code.
  • Andere Chunks werden bei Bedarf geladen (z. B. wenn eine bestimmte Route aufgerufen wird).

So laden Benutzerinnen und Benutzer nur den Code herunter, den sie benötigen, und zwar genau dann, wenn sie ihn benötigen.

Große Listen effizient anzeigen

Die Anzeige von Tausenden von Elementen in einer Liste kann die Performance erheblich beeinträchtigen. Virtualisierung (auch „Windowing“ genannt) löst dieses Problem, indem nur die Elemente gerendert werden, die aktuell im Viewport sichtbar sind.

Beim Scrollen werden neue Elemente gerendert und alte, nicht mehr sichtbare Elemente entfernt. Dadurch wird die Anzahl der DOM-Elemente drastisch reduziert, was für ein deutlich flüssigeres Scroll-Erlebnis sorgt.

Die Ausführung von Event-Handlern steuern

Häufig auftretende Ereignisse wie die Eingabe in ein Suchfeld, das Ändern der Fenstergröße oder das Scrollen können viele aufwendige Operationen auslösen. Debouncing und Throttling helfen dabei, zu steuern, wie oft diese Event-Handler ausgeführt werden.

  • Debouncing: Führt eine Funktion erst nach einer bestimmten Zeit ohne weitere Aktivität aus (z. B. nachdem die Eingabe beendet wurde).
  • Throttling: Beschränkt die Ausführung einer Funktion auf höchstens einmal pro festgelegtem Intervall (z. B. wird ein Scroll-Handler höchstens alle 100 ms ausgeführt).

So verhindern Sie zu häufige Ausführungen und sparen wertvolle CPU-Zyklen.

Eine Debounce-Funktion implementieren

Hier sehen Sie eine einfache JavaScript-Debounce-Funktion. Führen Sie sie aus, um zu sehen, wie sie die Ausführung verzögert:

function debounce(func, delay) {
  let timeout;
  return function(...args) {
    const context = this;
    clearTimeout(timeout);
    timeout = setTimeout(() => func.apply(context, args), delay);
  };
}

const handleInput = (value) => {
  console.log("Processed input:", value);
};

const debouncedInput = debounce(handleInput, 500);

console.log("Typing 'H'");
debouncedInput("H");
console.log("Typing 'He'");
debouncedInput("He");
console.log("Typing 'Hel'");
debouncedInput("Hel");
// Simulate a pause
setTimeout(() => {
  console.log("Typing 'Hell'");
  debouncedInput("Hell");
  console.log("Typing 'Hello'");
  debouncedInput("Hello");
}, 700);

Testen Sie Ihr Wissen

Welche Technik eignet sich am besten, um die Performance einer Komponente zu verbessern, die eine sehr lange Liste von Elementen anzeigt, von denen jeweils nur einige sichtbar sind?

Zusammenfassung der Performance-Optimierung

Sehr gut! Sie haben wichtige Techniken zur Optimierung Ihrer UI-Komponenten kennengelernt:

  • Memoization: Speichert Funktionsergebnisse zwischen, um Neuberechnungen zu vermeiden.
  • Lazy Loading/Code-Splitting: Reduziert die initiale Ladezeit, indem Komponenten bei Bedarf geladen werden.
  • Virtualisierung: Rendert große Listen effizient, indem nur sichtbare Elemente angezeigt werden.
  • Debouncing/Throttling: Steuert die Häufigkeit, mit der Event-Handler ausgeführt werden.

Durch den Einsatz dieser Techniken sorgen Sie für schnellere, flüssigere und angenehmere Benutzererlebnisse!

Kostenlos starten

Lerne Design Systems & Component Libraries mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
12
Lektionen
48

Häufig gestellte Fragen

Ist die Lektion „Performance-Optimierung“ kostenlos?

Ja — der vollständige Text von „Performance-Optimierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Design Systems & Component Libraries-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Design Systems & Component Libraries-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Performance-Optimierung“?

Wenden Sie Techniken an, damit Ihre Komponenten leichtgewichtig sind, effizient gerendert werden und zu einer schnellen Benutzererfahrung beitragen. Du übst Design Systems & Component Libraries mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Design Systems & Component Libraries zu starten?

Keine Vorkenntnisse erforderlich. Design Systems & Component Libraries auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Performance-Optimierung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Design Systems & Component Libraries-Lektion Code schreiben und ausführen?

Ja. Jede Design Systems & Component Libraries-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Theming und White-Labeling
  2. Internationalisierung (i18n)
  3. Performance-Optimierung
  4. Polymorphe Komponenten erstellen
← Zurück zu Design Systems & Component Libraries