Heim Web-Frontend js-Tutorial React-Performance-Optimierungstechniken: Memoisierung, Lazy Loading und mehr

React-Performance-Optimierungstechniken: Memoisierung, Lazy Loading und mehr

Oct 25, 2024 pm 05:34 PM

React Performance Optimization Techniques: Memoization, Lazy Loading, and More

Beim Erstellen moderner Webanwendungen ist die Leistung entscheidend. Benutzer erwarten schnelle, reaktionsschnelle Apps und selbst eine geringfügige Verzögerung kann zu Frustration führen. Obwohl React leistungsstark ist, kann es manchmal zu Leistungsengpässen kommen, insbesondere wenn Anwendungen immer größer und komplexer werden. Glücklicherweise gibt es mehrere Techniken zur Leistungsoptimierung, darunter Memoisierung, Lazy Loading und mehr.

In diesem Leitfaden erläutern wir einige der effektivsten Möglichkeiten zur Optimierung der Leistung Ihrer React-Anwendungen. Wir behandeln die Grundlagen des Memoisierens, Lazy Loading und Tools wie den React Profiler, um Ihnen bei der Identifizierung und Behebung von Engpässen zu helfen. Fangen wir an!

Einführung: Warum Leistung in modernen React-Apps wichtig ist

Stellen Sie sich Ihre Web-App wie ein Auto vor – egal wie elegant sie von außen aussieht, wenn sie nicht gut funktioniert, leidet das Benutzererlebnis. In React-Apps bezieht sich diese „Leistung“ darauf, wie schnell Ihre Komponenten gerendert werden und wie effizient sie aktualisiert werden, wenn sich die Daten oder der Status ändern.

Wenn Ihre React-App skaliert, kann das unnötige erneute Rendern von Komponenten oder das gleichzeitige Laden umfangreicher Pakete zu einer langsameren Leistung führen. Aus diesem Grund ist das Erlernen von React-Performance-Optimierungstechniken für die Erstellung reibungsloser, leistungsstarker Anwendungen von entscheidender Bedeutung.

Auswendiglernen in React

So nutzen Sie React.memo und useMemo effektiv

Memoisierung ist ein schickes Wort, das einfach bedeutet, das Ergebnis eines Funktionsaufrufs zwischenzuspeichern, damit Sie es nicht jedes Mal neu berechnen müssen. In React trägt die Memoisierung dazu bei, unnötige erneute Renderings zu vermeiden, indem sie sich das Ergebnis eines vorherigen Renderings merkt und dieses zwischengespeicherte Ergebnis verwendet, wenn sich nichts geändert hat.

React.memo

Beginnen wir mit React.memo. Diese Komponente höherer Ordnung verhindert, dass eine Komponente erneut gerendert wird, wenn sich ihre Requisiten nicht geändert haben.

Beispiel:

const MyComponent = React.memo(function MyComponent({ name }) {
  console.log('Rendered');
  return <div>Hello, {name}</div>;
});
Nach dem Login kopieren
Nach dem Login kopieren

In diesem Beispiel wird MyComponent nur dann neu gerendert, wenn sich die Namensstütze ändert. Wenn Sie denselben Namenswert übergeben, überspringt React das Rendering und verbessert so die Leistung.

Verwenden Sie Memo

Als nächstes kommt useMemo. Dieser Hook wird verwendet, um teure Berechnungen oder Werte in Ihren Funktionskomponenten zu speichern.

Beispiel:

import { useMemo } from 'react';

function MyApp({ items }) {
  const expensiveCalculation = useMemo(() => {
    return items.reduce((total, item) => total + item.value, 0);
  }, [items]);

  return <div>Total Value: {expensiveCalculation}</div>;
}
Nach dem Login kopieren
Nach dem Login kopieren

Hier wird die Berechnung nur dann erneut ausgeführt, wenn sich das Elementarray ändert. Dies spart Zeit, da nicht bei jedem Rendern das gleiche Ergebnis neu berechnet werden muss.

Lazy Loading-Komponenten

Verbessern der Ladezeiten mit React.lazy

Lazy Loading ist eine Technik, bei der Komponenten nur dann geladen werden, wenn sie benötigt werden, anstatt alles im Voraus zu laden. Dies trägt dazu bei, die anfängliche Ladezeit Ihrer Anwendung zu verkürzen, sodass sie sich schneller anfühlt.

React bietet eine integrierte Funktion namens React.lazy(), mit der Sie Komponenten bei Bedarf laden können.

Beispiel:

const MyComponent = React.memo(function MyComponent({ name }) {
  console.log('Rendered');
  return <div>Hello, {name}</div>;
});
Nach dem Login kopieren
Nach dem Login kopieren

In diesem Beispiel wird MyComponent nur dann geladen, wenn es tatsächlich benötigt wird. Die Suspense-Komponente bietet eine Fallback-Benutzeroberfläche (wie ein Lade-Spinner), während die Komponente abgerufen wird, was die Benutzererfahrung reibungsloser macht.

React Profiler zur Leistungsüberwachung

So identifizieren Sie Engpässe

Es ist schwer, etwas zu optimieren, das man nicht messen kann. Hier kommt der React Profiler ins Spiel. Mit dem React Profiler können Sie die Leistung Ihrer Komponenten verfolgen, langsame Renderings identifizieren und die „Kosten“ von erneuten Renderings messen.

Um den React Profiler zu verwenden, umschließen Sie einfach einen Komponentenbaum mit und stellen Sie eine Rückruffunktion bereit, um die Leistungsdaten zu sammeln.

Beispiel:

import { useMemo } from 'react';

function MyApp({ items }) {
  const expensiveCalculation = useMemo(() => {
    return items.reduce((total, item) => total + item.value, 0);
  }, [items]);

  return <div>Total Value: {expensiveCalculation}</div>;
}
Nach dem Login kopieren
Nach dem Login kopieren

Mit dem Profiler können Sie verfolgen, wie lange das Rendern jeder Komponente dauert, und Bereiche finden, in denen die Leistung verbessert werden kann, z. B. unnötiges erneutes Rendern.

Andere Optimierungsstrategien

Codeaufteilung, Optimierung der Ereignisverarbeitung und mehr

Über das Auswendiglernen und Lazy Loading hinaus gibt es mehrere andere Techniken, um die Leistung Ihrer React-App zu verbessern:

  1. Code-Aufteilung: Teilen Sie Ihre App in kleinere Teile auf, die bei Bedarf mit der Code-Aufteilungsfunktion von Webpack geladen werden können. Dadurch verringert sich die anfängliche Bündelgröße.
import React, { Suspense, lazy } from 'react';

const MyComponent = lazy(() => import('./MyComponent'));

function App() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <MyComponent />
    </Suspense>
  );
}
Nach dem Login kopieren
  1. Optimierung der Ereignisbehandlung: Verwenden Sie den useCallback-Hook, um Ereignishandler auswendig zu lernen und zu verhindern, dass sie bei jedem Rendern neu erstellt werden.
import { Profiler } from 'react';

function onRenderCallback(
  id, // the "id" prop of the Profiler tree that has just committed
  phase, // either "mount" (if the tree just mounted) or "update" (if it re-rendered)
  actualDuration, // time spent rendering the committed update
  baseDuration, // estimated time to render the entire subtree without memoization
  startTime, // when React began rendering this update
  commitTime, // when React committed this update
  interactions // the Set of interactions belonging to this update
) {
  console.log({ id, phase, actualDuration });
}

function MyApp() {
  return (
    <Profiler id="App" onRender={onRenderCallback}>
      <MyComponent />
    </Profiler>
  );
}
Nach dem Login kopieren
  1. Entprellen und Drosseln: Optimieren Sie Ereignis-Listener wie Scrollen oder Größenänderung, indem Sie sie entprellen oder drosseln, um die Häufigkeit von Aktualisierungen zu begrenzen.
   const OtherComponent = lazy(() => import('./OtherComponent'));
Nach dem Login kopieren

Fazit: Mit diesen Techniken leistungsstarke Reaktionsanwendungen erstellen

Das Erstellen schneller und effizienter React-Anwendungen erfordert eine Kombination von Techniken. Durch die Verwendung von memoization mit React.memo und useMemo können Sie unnötige erneute Renderings verhindern. Durch das Lazy Loading von Komponenten mit React.lazy können Sie die Ladezeiten verkürzen, indem Sie Komponenten nur dann abrufen, wenn sie benötigt werden. Der React Profiler hilft Ihnen, Leistungsengpässe zu erkennen und zu optimieren.

In Kombination mit Strategien wie Code-Splitting und Ereignisoptimierung können Sie sicherstellen, dass Ihre React-Apps auch bei zunehmender Größe und Komplexität ein reibungsloses und reaktionsfähiges Benutzererlebnis bieten.


Sind Sie bereit, die Leistung Ihrer React-App auf die nächste Stufe zu heben? Probieren Sie diese Optimierungstechniken in Ihren Projekten aus und beobachten Sie, wie sich die Geschwindigkeit Ihrer App verbessert!


Wenn Ihnen dieser Artikel gefallen hat, denken Sie darüber nach, meine Arbeit zu unterstützen:

  • Lade mir einen Kaffee ein
  • Buchen Sie einen Anruf für Mentoring oder Karriereberatung
  • Folgen Sie mir auf Twitter
  • Vernetzen Sie sich auf LinkedIn

Das obige ist der detaillierte Inhalt vonReact-Performance-Optimierungstechniken: Memoisierung, Lazy Loading und mehr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1677
14
PHP-Tutorial
1280
29
C#-Tutorial
1257
24
Python vs. JavaScript: Die Lernkurve und Benutzerfreundlichkeit Python vs. JavaScript: Die Lernkurve und Benutzerfreundlichkeit Apr 16, 2025 am 12:12 AM

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

JavaScript und das Web: Kernfunktionalität und Anwendungsfälle JavaScript und das Web: Kernfunktionalität und Anwendungsfälle Apr 18, 2025 am 12:19 AM

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

JavaScript in Aktion: Beispiele und Projekte in realer Welt JavaScript in Aktion: Beispiele und Projekte in realer Welt Apr 19, 2025 am 12:13 AM

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

Verständnis der JavaScript -Engine: Implementierungsdetails Verständnis der JavaScript -Engine: Implementierungsdetails Apr 17, 2025 am 12:05 AM

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python vs. JavaScript: Entwicklungsumgebungen und Tools Python vs. JavaScript: Entwicklungsumgebungen und Tools Apr 26, 2025 am 12:09 AM

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

Die Rolle von C/C bei JavaScript -Dolmetschern und Compilern Die Rolle von C/C bei JavaScript -Dolmetschern und Compilern Apr 20, 2025 am 12:01 AM

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

Python gegen JavaScript: Anwendungsfälle und Anwendungen verglichen Python gegen JavaScript: Anwendungsfälle und Anwendungen verglichen Apr 21, 2025 am 12:01 AM

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.

Von Websites zu Apps: Die verschiedenen Anwendungen von JavaScript Von Websites zu Apps: Die verschiedenen Anwendungen von JavaScript Apr 22, 2025 am 12:02 AM

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

See all articles