Inhaltsverzeichnis
1. Hohe Kopplung und geringe Kohäsion.
2. Anzeigekomponenten und Containerkomponenten
3. Einweg-Datenfluss von oben nach unten
4. Kontrollierte Komponenten und unkontrollierte Komponenten
Kontrollierte Komponente:
Unkontrollierte Komponente:
5. Verwenden Sie Komponenten höherer Ordnung (HOC)
6. Standardprozess zum Hinzufügen, Löschen, Ändern und Überprüfen
Heim Web-Frontend js-Tutorial Entwerfen Sie React-Komponenten angemessen, um den Code schöner zu machen! !

Entwerfen Sie React-Komponenten angemessen, um den Code schöner zu machen! !

Feb 13, 2021 am 09:10 AM

Entwerfen Sie React-Komponenten angemessen, um den Code schöner zu machen! !

Der Zweck von React besteht darin, die Front-End-Seite in Komponenten zu zerlegen und das State-Machine-Denkmodell zur Steuerung der Komponenten zu verwenden. Es besteht definitiv eine Beziehung zwischen den Komponenten. Durch angemessenes Komponentendesign und die Festlegung geeigneter Grenzen für jede Komponente können wir die Auswirkungen auf andere Komponenten bei der Rekonstruktion der Seite effektiv reduzieren. Gleichzeitig kann es unseren Code auch schöner machen.

1. Hohe Kopplung und geringe Kohäsion.

Hohe Kopplung: Fügen Sie die eng verwandten Funktionsteile in eine Containerkomponente ein, um index.js der Außenwelt zugänglich zu machen. Die Verzeichnisstruktur ist wie folgt:

├── components
│   └── App
└── index.js
Nach dem Login kopieren

Geringe Kohäsion: Wenn diese Komponente direkt auf der aufrufenden Seite gelöscht wird, nein Auswirkungen werden ausgelöst. Reduzieren Sie unnötiges wiederholtes Rendern.

2. Anzeigekomponenten und Containerkomponenten

Der Fokus liegt hier auf this.props.children. Durch this.props.children können wir unsere Komponenten leicht kohäsionsarm machen. In der tatsächlichen Entwicklung stoßen wir häufig auf Anzeigekomponenten, die mit reinen Komponenten geschrieben wurden, und auf Containerkomponenten, die weiterhin Daten verarbeiten. Verwenden Sie hier einfach this.props.children, um diese Containerkomponenten abzudecken. Anschließend kann die eingeschlossene Containerkomponente gemäß den oben genannten Regeln weiterhin einen neuen Ordner erstellen und index.js verfügbar machen.
Der größte Vorteil dieser Schreibweise besteht darin, dass Sie schnell herausfinden können, wo sich die von Ihnen geschriebene Komponente befindet, was sie bewirkt und welche Auswirkungen sie hat.

3. Einweg-Datenfluss von oben nach unten

Wenn wir entwerfen müssen, um die oben genannten Bedingungen zu erfüllen, können wir durch die Verwendung eines Einweg-Datenflusses von oben nach unten derzeit einige Statusverwaltungstools wie Redux verwenden , der Einflussbereich ist besser kontrollierbar und ShouldComponentUpdate wird verwendet, um unnötiges Rendern zu reduzieren. (Aber es ist wirklich mühsam, auf diese Weise zu schreiben, aber React verwendet ab Version 16.3 die neue Lebenszyklusfunktion getDerivedStateFromProps, um Entwickler zu zwingen, diesen Schritt zu optimieren.)

4. Kontrollierte Komponenten und unkontrollierte Komponenten

Es gibt viele Webkomponenten durch Benutzerinteraktion geändert werden, wie zum Beispiel: , . Diese Komponenten können den Wert der Komponente ändern, indem sie Inhalte eingeben oder das Wertattribut des Elements festlegen. Da React jedoch an einen einseitigen Datenfluss gebunden ist, können diese Komponenten außer Kontrolle geraten:
1. Eine -Komponente, die den Wert in ihrem eigenen Zustand beibehält, kann nicht von außen geändert werden
2. Eine ;Eingabe> Die zum Festlegen des Werts verwendete Komponente kann nur durch externe Steuerung aktualisiert werden.

Kontrollierte Komponente:

Eine kontrollierte sollte ein Wertattribut haben. Beim Rendern einer gesteuerten Komponente wird der Wert des Wertattributs angezeigt.
Eine kontrollierte Komponente behält ihren eigenen internen Zustand nicht bei und die Darstellung der Komponente hängt ausschließlich von Requisiten ab. Mit anderen Worten: Wenn wir eine -Komponente haben, die den Wert über Requisiten festlegt, wird unabhängig von der Eingabe nur props.value angezeigt. Mit anderen Worten: Ihre Komponente ist schreibgeschützt.
Wenn Sie mit einer gesteuerten Komponente arbeiten, sollten Sie immer ein Wertattribut übergeben und eine onChange-Rückruffunktion registrieren, um die Komponente variabel zu machen.

Unkontrollierte Komponente:

Eine ist eine unkontrollierte Komponente. Durch gerenderte Elemente wird jede Benutzereingabe sofort wiedergegeben. Unkontrollierte kann nur die obere Ebene über vom Benutzer eingegebene Änderungen über die OnChange-Funktion benachrichtigen.
#### Hybridkomponente:
Behalten Sie die Werte von props.value und state.value gleichzeitig bei. props.value hat bei der Anzeige eine höhere Priorität und state.value repräsentiert den tatsächlichen Wert der Komponente.

5. Verwenden Sie Komponenten höherer Ordnung (HOC)

Einfache Definition: eine Funktion, die eine Reaktionskomponente als Parameter empfängt und eine andere Komponente zurückgibt.
Was kann getan werden: Code-Wiederverwendung, Code-Modularisierung, Hinzufügen, Löschen und Ändern von Requisiten.
Anwendungsfälle: Wenn das Unternehmen beispielsweise plötzlich verschiedene Klickpunkte im Front-End-Code vergraben möchte, kann es hoc verwenden, um einen davon zu packen Ohne den ursprünglichen Code zu ändern, muss der gesamte Code gleichzeitig vorgenommen werden.

6. Standardprozess zum Hinzufügen, Löschen, Ändern und Überprüfen

Hinzufügen: Daten eingeben, Daten überprüfen, Daten einfügen und die Datenliste erneut abfragen.
Löschen: Bestätigen Sie das Löschen und fragen Sie die Datenliste erneut ab.
Überprüfen: Datenliste abfragen, im Paging anzeigen
Ändern: Daten eingeben, Daten überprüfen, Daten ändern, Datenliste erneut abfragen

Tatsächlich ist beim Entwerfen von Komponenten keine vorzeitige Komponentisierung erforderlich. Wir können zunächst schnell eine Version schreiben und diese dann entsprechend dem tatsächlichen Entwurf aufteilen, um schnelle Änderungen der Anforderungen in den frühen Phasen des Projekts bewältigen zu können. Dann ändern wir unser Projekt Stück für Stück entsprechend dem Designmuster. Solange das Designmuster einigermaßen aufgeteilt ist, ist es eigentlich eine sehr glatte und natürliche Sache.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !

Anzeigekomponenten Containerkomponenten
Konzentrieren Sie sich auf die Anzeige von Dingen. und im Allgemeinen gibt es DOM-Tags und CSS-Stile , die Präsentations- und Containerkomponenten enthalten können, und es wird keine DOM-Tags und CSS-Stile
geben, die oft über this.props.children weitergeleitet werden dürfen, um Daten bereitzustellen und Verhalten gegenüber Containerkomponenten oder Präsentationskomponenten
Es besteht keine Abhängigkeit von Dritten, wie Store- oder Flux-Aktionen geladen und geändert Als Datenquelle haben in der Regel übergeordnete Komponenten, anstatt sie selbst zu schreiben, wie connect() von React Redux, createContainer() von Relay, Container.create() von Flux Utils
selten einen eigenen Status , selbst wenn sie es tun, ist es ihr eigener UI-Status

Das obige ist der detaillierte Inhalt vonEntwerfen Sie React-Komponenten angemessen, um den Code schöner zu machen! !. 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ß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)

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Apr 04, 2025 pm 05:12 PM

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? Apr 04, 2025 pm 02:06 PM

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...

See all articles