Heim > Web-Frontend > js-Tutorial > EACT -Leistungsmuster, die jeder Entwickler stehlen sollte (und wie er sie implementiert)

EACT -Leistungsmuster, die jeder Entwickler stehlen sollte (und wie er sie implementiert)

Mary-Kate Olsen
Freigeben: 2025-01-28 12:30:12
Original
814 Leute haben es durchsucht

eact Performance Patterns Every Developer Should Steal (and How to Implement Them)

Die Auftriebsleistung der React -App ist für eine positive Benutzererfahrung von entscheidender Bedeutung. In diesem Artikel werden sieben bewährte Leistungsmuster beschrieben, die aus der Optimierung zahlreicher Produktionsreaktionsanwendungen hergestellt wurden.


  1. Memoisierung mit useMemo und useCallback:

Problem: unnötige Wiederholer aufgrund unveränderter Requisiten oder Zustand.

Lösung: cache rechnerisch teure Operationen und Funktionsreferenzen.

1

2

3

4

5

6

7

const ExpensiveComponent = ({ items }) => {

  const sortedList = useMemo(() => items.sort((a, b) => a.price - b.price), [items]);

  const handleClick = useCallback(() => {

    console.log('Item clicked:', sortedList[0]);

  }, [sortedList]);

  return <ChildComponent onClick={handleClick} />;

};

Nach dem Login kopieren

Best Practices: Verwenden Sie mit React.memo für untergeordnete Komponenten, um unnötige Subtree -Updates zu verhindern. Ideal für komplexe Berechnungen (Sortierung, Filterung), Rückrufe an optimierte Kinder und stabile Kontextanbieterwerte.


  1. Lazy Loading und Code -Spaltung:

Problem: Große anfängliche Bundle -Größe, die den ersten inhaltlichen Farben (FCP) beeinflusst.

Lösung: Dynamische Importe und Suspense für das Laden von On-Demand.

1

2

3

4

5

6

7

const HeavyChartLibrary = React.lazy(() => import('./ChartComponent'));

 

const Dashboard = () => (

  <React.Suspense fallback={<Spinner />}>

    {showCharts && <HeavyChartLibrary />}

  </React.Suspense>

);

Nach dem Login kopieren

Fortgeschritten: in den React-Router für Routenbasis aufgeteilt.

.
  1. virtualisierte Listen für große Datensätze:

Problem:

Tausende von Elementen überfordern den Dom.

Lösung: react-window

nur sichtbare Gegenstände rendert.

1

2

3

4

5

6

7

8

9

import { FixedSizeList } from 'react-window';

 

const BigList = ({ items }) => (

  <FixedSizeList height={600} itemCount={items.length} itemSize={35} width="100%">

    {({ index, style }) => (

      <div style={style}>...</div>

    )}

  </FixedSizeList>

);

Nach dem Login kopieren

Bonus: VariableSizeList Verwenden Sie react-virtualized-auto-sizer für dynamische Zeilenhöhen und

für reaktionsschnelle Container.
  1. Effizientes Zustandsmanagement:

Problem:

Mehrere Statusaktualisierungen, die kaskadierende Wiederherstellungen verursachen.

Lösung:

Hebel -Reaktion 18s automatische Charge.

reagieren 18:

1

2

setCount(1);

setText('Updated'); // Single re-render

Nach dem Login kopieren

vor der Reaktion 18 oder für komplexe Szenarien: useReducer Verwenden Sie

für atomare Statusaktualisierungen.
  1. Debouncing API -Aufrufe:

Problem:

übermäßige API -Anforderungen von schnellen Benutzereingaben (z. B. Suchleisten).

Lösung: useDebounce ein benutzerdefinierter

haken.

1

2

3

4

5

6

7

8

9

10

import { useEffect, useState } from 'react';

 

const useDebouncedValue = (value, delay) => {

  const [debouncedValue, setDebouncedValue] = useState(value);

  useEffect(() => {

    const handler = setTimeout(() => setDebouncedValue(value), delay);

    return () => clearTimeout(handler);

  }, [value, delay]);

  return debouncedValue;

};

Nach dem Login kopieren

Pro -Tipp: AbortController Kombinieren Sie mit

, um anhängige Anforderungen zu stornieren.
  1. optimierte Kontext -API:

Problem:

unnötige Wiederholer von Kontextverbrauchern aufgrund von nicht verwandten Änderungen.

Lösung:

Splesende Kontexte und Memoize -Anbieterwerte.
  1. optimistische UI -Updates:

Problem:

langsame Benutzeroberfläche aufgrund des Wartens auf API -Antworten.

Lösung: Sofortiges visuelles Feedback und Rollback beim Fehler geben.


Performance -Checkliste:

  1. Profil-Rehvertreiber mit React Devtools Profiler.
  2. Bündelgröße mit Source-Map-Explorer analysieren.
  3. Test mit Chroms Leistungsregisterkarte (CPU -Drosselung).
  4. verwenden React.memo, useMemo, useCallback strategisch.
  5. inkrementelle Laden implementieren.
  6. Bilder/Medien mit faulem Laden optimieren.
  7. Betrachten Sie das serverseitige Rendering für kritische Inhalte.

Denken Sie daran: Profil zuerst, zweitens optimieren! Diese Techniken sind für verschiedene React -Frameworks (Next.js, Gatsby usw.) anwendbar.

Das obige ist der detaillierte Inhalt vonEACT -Leistungsmuster, die jeder Entwickler stehlen sollte (und wie er sie implementiert). 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage