react.js

React zu langsam – 10 einfache Ansätze, wie Du Deine React Applikation beschleunigst

Ich schreibe eine Anwendung in React und habe mehrere Komponenten, die Ressourcen verbrauchen (CPU/RAM). Ist es möglich, einige in den Ruhezustand zu versetzen, sodass sie keine oder nur eine geringere Menge an Ressourcen verbrauchen?

In einer JavaScript-Umgebung wie React gibt es keine direkte Möglichkeit, eine Komponente „schlafen“ zu legen oder ihre CPU- oder RAM-Nutzung manuell zu steuern. Die JavaScript-Laufzeit (wie die V8-Engine in Chrome) übernimmt die Speicherverwaltung für dich. Sie entscheidet, wann sie Ressourcen zuweist und freigibt.

Du kannst die Ressourcennutzung deiner React-Anwendung jedoch mit einigen Strategien optimieren:

  1. Lazy Loading: Verwende React.lazy, um dein Bundle aufzuteilen und die Komponenten nach Bedarf zu laden. So kannst du die ursprüngliche Größe des Pakets reduzieren und das Laden von Teilen der Anwendung verzögern, bis sie benötigt werden.
  2. Bedingtes Rendering: Du kannst Komponenten aus dem DOM entfernen, wenn sie nicht verwendet werden. Wenn eine Komponente nicht gerendert wird, verbraucht sie auch keine Ressourcen.
  3. UseMemo und useCallback: Mit React.memo, useMemo und useCallback vermeidest du unnötige Renderings und Funktionserstellungen.
  4. Virtualisiere große Listen: Wenn du eine große Liste von Elementen darstellst (z. B. in einer Tabelle oder einem Gitter), solltest du eine Bibliothek wie react-window verwenden, um nur die sichtbaren Elemente darzustellen.
  5. Event-Handler drosseln oder entprellen: Wenn du Event-Handler (z. B. für das Scrollen oder die Tastatureingabe) hast, die sehr häufig ausgelöst werden, solltest du eine Drosselung oder Entprellung in Betracht ziehen, um die Anzahl der Auslösungen zu reduzieren.
  6. Web Worker: Wenn du umfangreiche Berechnungen durchführst, kannst du sie an Web Worker auslagern. Dadurch wird die Aufgabe in einem separaten Thread ausgeführt und blockiert nicht die Benutzeroberfläche.
  7. Optimiere Bilder und andere Assets: Große Bilder und andere Assets können viel Speicherplatz beanspruchen. Optimiere diese Assets, erwäge die Verwendung von CDNs und lade sie nach Bedarf.
  8. Verwendung von shouldComponentUpdate oder React.PureComponent: Wenn du Klassenkomponenten hast, kannst du mit shouldComponentUpdate oder der Erweiterung React.PureComponent unnötige Re-Renderings verhindern, indem du einen oberflächlichen Vergleich von Props und Status durchführst.
  9. Vermeide Inline-Funktionsdefinitionen im Rendering: Dadurch wird bei jedem Rendering eine neue Funktion erstellt, die unnötige Re-Renderings in untergeordneten Komponenten verursachen kann, wenn sie React.PureComponent oder shouldComponentUpdate verwenden.
  10. Vermeide unnötige Statusaktualisierungen: Eine Statusaktualisierung führt zu einem neuen Rendering. Wenn der neue Zustand der gleiche ist wie der aktuelle, solltest du die Aktualisierung vermeiden.

Denke daran, dass verfrühte Optimierung die Wurzel allen Übels ist. Diese Strategien sollten bei Bedarf eingesetzt werden, nicht nur, weil es sie gibt. Messe und verstehe immer, wo die Leistungsengpässe deiner Anwendung liegen, bevor du optimierst. Der React DevTools Profiler ist eine gute Möglichkeit, dies zu tun.

 

Wenn Du nicht weiterkommt, frag uns (React Agentur) gern. Vielleicht haben wir eine Idee ?

Comments are closed

e-laborat - © seit 2000 - Webagentur Berlin mit ♥