Heim  >  Artikel  >  Web-Frontend  >  Welche Probleme lösen Hooks in React?

Welche Probleme lösen Hooks in React?

WBOY
WBOYOriginal
2022-04-19 15:28:584893Durchsuche

Gelöste Probleme: 1. Zustandslogik aus Komponenten extrahieren, wodurch das Problem der schwierigen Wiederverwendung von Zustandslogik zwischen Komponenten gelöst wird. 2. Die miteinander verbundenen Teile von Komponenten in kleinere Funktionen aufteilen und so komplexe Probleme mit Komponenten lösen Reagieren Sie auf Features in Nicht-Klassen-Situationen, um das Problem der Unterschiede zwischen Klassenkomponenten und Funktionskomponenten zu lösen.

Welche Probleme lösen Hooks in React?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Reaktionsversion 17.0.1, Dell G3-Computer.

Welche Probleme lösen Hooks in React? 1. Es ist schwierig, Zustandslogik zwischen Komponenten wiederzuverwenden.

React bietet keine Möglichkeit, wiederverwendbare Verhaltensweisen an Komponenten anzuhängen (z. B. Komponenten mit einem Speicher zu verbinden). kann Render-Requisiten und Komponenten höherer Ordnung verwenden, um solche Probleme zu lösen. Solche Lösungen erfordern jedoch eine Neuorganisation der Komponentenstruktur, was umständlich sein und das Verständnis des Codes erschweren kann. Komponenten, die aus Anbietern, Verbrauchern, Komponenten höherer Ordnung, Render-Requisiten und anderen Abstraktionsschichten bestehen, können eine „verschachtelte Hölle“ erzeugen. Obwohl es möglich ist, sie in DevTools herauszufiltern, verdeutlicht dies ein tieferes Problem: React muss eine bessere native Möglichkeit für Shared-State-Logik bieten.

Sie können Hooks verwenden, um Zustandslogik aus Komponenten zu extrahieren, sodass diese Logiken einzeln getestet und wiederverwendet werden können. Mit Hooks können wir die Zustandslogik wiederverwenden, ohne die Komponentenstruktur zu ändern. Dies erleichtert die gemeinsame Nutzung von Hooks zwischen Komponenten oder innerhalb der Community.

2. Komplexe Komponenten werden schwer zu verstehen

In Komponenten enthält jeder Lebenszyklus oft eine irrelevante Logik. Beispielsweise erhalten Komponenten häufig Daten in „componentDidMount“ und „componentDidUpdate“. Derselbe „componentDidMount“ kann jedoch auch viele andere Logiken enthalten, z. B. das Festlegen von Ereignis-Listenern, die später in „componentWillUnmount“ gelöscht werden müssen. Code, der zusammenhängt und geändert werden muss, wird aufgeteilt, während völlig unabhängiger Code in derselben Methode zusammengefasst wird. Dies kann leicht zu Fehlern und logischen Inkonsistenzen führen.

In den meisten Fällen ist es nicht möglich, Komponenten in kleinere Granularitäten aufzuteilen, da Zustandslogik überall vorhanden ist. Dies bringt auch gewisse Herausforderungen beim Testen mit sich. Gleichzeitig ist dies einer der Gründe, warum viele Menschen React mit einer State-Management-Bibliothek nutzen. Dies führt jedoch häufig zu vielen abstrakten Konzepten und erfordert das Hin- und Herwechseln zwischen verschiedenen Dateien, was die Wiederverwendung erschwert.

Um dieses Problem zu lösen, teilt Hook die miteinander verbundenen Teile der Komponente in kleinere Funktionen auf (z. B. das Festlegen von Abonnements oder das Anfordern von Daten), anstatt eine Aufteilung entsprechend dem Lebenszyklus zu erzwingen. Sie können Reduzierer auch verwenden, um den internen Zustand einer Komponente zu verwalten und ihn vorhersehbarer zu machen.

3. Unverständliche Klassen

Neben den Schwierigkeiten bei der Wiederverwendung von Code und der Codeverwaltung stellen Klassen ein großes Hindernis für das Erlernen von React dar. Wir müssen verstehen, wie das in JavaScript funktioniert, das sich stark von anderen Sprachen unterscheidet. Vergessen Sie nicht, Event-Handler zu binden. Es gibt keinen stabilen Syntaxvorschlag und der Code ist sehr redundant. Jeder kann Requisiten, Status und Top-Down-Datenfluss sehr gut verstehen, aber er ist ratlos für Klassen. Selbst unter erfahrenen React-Entwicklern gibt es Meinungsverschiedenheiten über die Unterschiede zwischen Funktionskomponenten und Klassenkomponenten und sogar über die Verwendungsszenarien der beiden Komponenten.

Um diese Probleme zu lösen, können Sie mit Hook mehr React-Funktionen ohne Klasse verwenden. Vom Konzept her ähnelten React-Komponenten schon immer eher Funktionen. Hooks umfassen Funktionen, ohne die spirituellen Prinzipien von React zu opfern. Hook bietet eine Lösung für das Problem, ohne komplexe funktionale oder reaktive Programmiertechniken zu erlernen

Empfohlenes Lernen: „

React-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Probleme lösen Hooks in React?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Ist React ein MVVM-Framework?Nächster Artikel:Ist React ein MVVM-Framework?