Heim > Web-Frontend > js-Tutorial > Reine Komponente in React.js

Reine Komponente in React.js

Patricia Arquette
Freigeben: 2024-10-24 03:17:30
Original
1080 Leute haben es durchsucht

Pure Component in React.jsKomponenten rein zu halten ist ein grundlegendes Prinzip in der React- und Funktionsprogrammierung. Hier erfahren Sie mehr über das Konzept der Reinheit von Komponenten, einschließlich der Vorteile und Strategien zur Aufrechterhaltung der Reinheit Ihrer React-Komponenten.


Komponenten in React rein halten

Was sind reine Funktionen?

Eine reine Funktion ist eine Funktion, die:

  1. Deterministisch: Bei gleicher Eingabe wird immer die gleiche Ausgabe erzeugt.
  2. Keine Nebenwirkungen: Es verursacht keine Nebenwirkungen, wie z. B. die Änderung des externen Zustands oder die Interaktion mit der Außenwelt (z. B. API-Aufrufe durchführen, DOM manipulieren).

Warum reine Komponenten verwenden?

  1. Vorhersagbarkeit: Reine Komponenten verhalten sich konsistent. Sie können sich auf ihre Ergebnisse verlassen, was die Überlegungen zur Anwendung vereinfacht.

  2. Einfacheres Testen: Da reine Komponenten vorhersehbar sind und keine Nebenwirkungen haben, sind sie einfacher zu testen. Sie können die Ausgabe basierend auf den Eingabe-Requisiten direkt testen, ohne sich Gedanken über externe Zustandsänderungen machen zu müssen.

  3. Leistungsoptimierung: Reine Komponenten helfen bei der Optimierung des Renderings. React kann anhand von Requisitenänderungen effizient ermitteln, ob eine Komponente erneut gerendert werden muss.

  4. Wartbarkeit: Wenn Ihre Codebasis wächst, wird die Wartung reiner Komponenten einfacher. Sie kapseln Funktionalität ohne versteckte Abhängigkeiten und erleichtern so das Debuggen und Refactoring.

  5. Wiederverwendung: Reine Komponenten sind in hohem Maße wiederverwendbar, da sie nicht von externen Zuständen abhängig sind. Sie können sie problemlos in verschiedenen Kontexten verwenden.

So bleiben die Inhaltsstoffe rein

Hier sind einige Strategien, um sicherzustellen, dass Ihre Komponenten rein bleiben:

  1. Nebenwirkungen vermeiden:
    • Ändern Sie Requisiten oder den globalen Status nicht direkt.
    • Vermeiden Sie asynchrone Vorgänge innerhalb der Render-Methode (z. B. API-Aufrufe, Timer).
   const PureComponent = ({ count }) => {
     // Pure function: does not cause side effects
     return <div>{count}</div>;
   };
Nach dem Login kopieren
  1. React.memo verwenden:
    • Umschließen Sie funktionale Komponenten mit React.memo, um unnötiges erneutes Rendern zu verhindern, wenn sich Requisiten nicht geändert haben.
   const PureGreeting = React.memo(({ name }) => {
     return <h1>Hello, {name}!</h1>;
   });
Nach dem Login kopieren
  1. Destruktur-Requisiten:
    • Destrukturieren Sie Requisiten in der Parameterliste der Komponente, um die Struktur der Komponente sauber und fokussiert zu halten.
   const PureButton = ({ label, onClick }) => {
     return <button onClick={onClick}>{label}</button>;
   };
Nach dem Login kopieren
  1. Status anheben:
    • Verwalten Sie den Status in übergeordneten Komponenten und geben Sie die erforderlichen Daten und Ereignishandler an untergeordnete Komponenten weiter. Dadurch bleiben untergeordnete Komponenten rein funktionsfähig.
   const ParentComponent = () => {
     const [count, setCount] = useState(0);

     return <PureCounter count={count} setCount={setCount} />;
   };
Nach dem Login kopieren
  1. Inline-Funktionen beim Rendern vermeiden:
    • Anstatt Funktionen inline in der Render-Methode zu definieren, definieren Sie sie außerhalb. Dadurch wird verhindert, dass bei jedem Rendern neue Funktionsinstanzen erstellt werden, was zu unnötigen erneuten Rendern führen kann.
   const PureCounter = React.memo(({ count, setCount }) => {
     return <button onClick={() => setCount(count + 1)}>Increment</button>;
   });
Nach dem Login kopieren
  1. Vermeiden Sie die direkte Mutation des Zustands:
    • Verwenden Sie Methoden, die neue Zustände zurückgeben, anstatt bestehende Zustände direkt zu verändern. Dies steht im Einklang mit den Prinzipien der Unveränderlichkeit.
   const handleAddItem = (item) => {
     setItems((prevItems) => [...prevItems, item]); // Pure approach
   };
Nach dem Login kopieren

Beispiel einer reinen Komponente

Hier ist ein vollständiges Beispiel einer rein funktionalen Komponente, die diesen Prinzipien folgt:

import React, { useState } from 'react';

const PureCounter = React.memo(({ count, onIncrement }) => {
  console.log('PureCounter Rendered');
  return <button onClick={onIncrement}>Count: {count}</button>;
});

const App = () => {
  const [count, setCount] = useState(0);

  const handleIncrement = () => {
    setCount((prevCount) => prevCount + 1);
  };

  return (
    <div>
      <h1>Pure Component Example</h1>
      <PureCounter count={count} onIncrement={handleIncrement} />
    </div>
  );
};

export default App;
Nach dem Login kopieren

Fazit

Die Reinhaltung der Komponenten in React vereinfacht nicht nur die Entwicklung, sondern verbessert auch die Leistung und Wartbarkeit. Durch die Einhaltung der Prinzipien reiner Funktionen können Sie Komponenten erstellen, die vorhersehbar, wiederverwendbar und einfach zu testen sind. Das Befolgen von Best Practices wie der Vermeidung von Nebenwirkungen, der Verwendung von React.memo und der angemessenen Verwaltung des Status kann Ihnen dabei helfen, eine robuste und verkaufsfähige Anwendung zu erstellen.

Das obige ist der detaillierte Inhalt vonReine Komponente in React.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage