React ist eine der beliebtesten JavaScript-Bibliotheken, die zum Erstellen interaktiver Benutzeroberflächen verwendet wird. Eines der wichtigsten Konzepte in React ist der Begriff des "Komponentenlebenszyklus". React-Komponenten können mehrere Phasen ihres Lebenszyklus durchlaufen, einschließlich Erstellen, Aktualisieren und Löschen.
In diesem Artikel werden wir die einzelnen Lebenszyklusmethoden der React-Komponente untersuchen, deren Verwendung untersuchen und Beispiele nennen. Wenn Sie diese Methoden kennen, können Sie den Status und die Anzeige von React-Komponenten in verschiedenen Phasen Ihres Lebenszyklus effektiv verwalten.
Die Lebenszyklusmethoden in React können in drei Gruppen unterteilt werden: Mount-Methoden, Update-Methoden und Unmount-Methoden. Die Mount-Methoden werden beim Erstellen der Komponente aufgerufen, die Update-Methoden werden aufgerufen, wenn sich der Status der Komponente ändert, und die Unmount-Methoden werden aufgerufen, wenn die Komponente aus der DOM-Struktur entfernt wird.
Einige der am häufigsten verwendeten React-Methoden umfassen: componentDidMount, componentDidUpdate und componentWillUnmount. In den folgenden Abschnitten werden wir jede dieser Methoden genauer betrachten und Beispiele für ihre Verwendung angeben.
componentDidMount-Methode: Verwendung und Beispiele
Grundlegende Verwendung der Methode componentDidMount dies ist in folgenden Fällen der Fall:
- Anforderungen an den Server zum Abrufen von Daten: sie können componentDidMount verwenden, um eine HTTP-Anforderung oder eine API-Anforderung auszuführen, um die für die Komponente erforderlichen Daten abzurufen. Beispielsweise kann eine Anwendung Daten aus einer Datenbank abrufen oder eine Liste von Elementen aus einer API abrufen;
- Einrichten von Ereignis-Listenern: wenn Sie Ereignis-Listener wie Klicks, Geolocation oder Tastatur innerhalb einer React-Komponente einrichten müssen, können Sie dafür die componentDidMount-Methode verwenden. Wenn die Komponente gerendert wird, ist der Ereignis-Listener betriebsbereit;
- DOM-Manipulation: wenn Sie nach dem Rendern einer Komponente Änderungen am realen DOM vornehmen müssen, z. B. das Ändern der Größe von Elementen, das Hinzufügen von Klassen oder das Ändern des Inhalts von Elementen, kann die componentDidMount-Methode zum Ausführen dieser Aktionen verwendet werden.
Hier ist ein Beispiel für die Verwendung der Methode componentDidMount:
class ExampleComponent extends React.Component componentDidMount() console.log('Component has mounted');
>
In diesem Beispiel wird beim Einhängen einer Komponente der Ausdruck "Component has mounted" in der Browserkonsole angezeigt.
Methode componentDidMount es ist ein leistungsfähiges Werkzeug für verschiedene Aufgaben nach dem Rendern einer Komponente. Sie sollten es jedoch mit Bedacht verwenden, um das Laden der Seite oder das Erstellen einer Komponente nicht zu verlangsamen.
componentDidUpdate-Methode: Verwendung und Beispiele
Die componentDidUpdate-Methode in React wird sofort aufgerufen, nachdem die Komponente und ihre untergeordneten Elemente aktualisiert wurden. Es ermöglicht Ihnen, zusätzliche Aktionen auszuführen, z. B. den Status einer Komponente zu aktualisieren oder mit dem DOM zu interagieren.
Um die componentDidUpdate-Methode zu verwenden, müssen Sie sie innerhalb einer Klassenkomponente definieren:
componentDidUpdate(prevProps, prevState, snapshot)
// code, der nach der Aktualisierung der Komponente ausgeführt wird
Das erste Argument der componentDidUpdate-Methode - prevProps - stellt die vorherigen Eigenschaften der Komponente dar, das zweite Argument - prevState - den vorherigen Status der Komponente. Wie bei anderen Lebenszyklusmethoden zeigt this in der componentDidUpdate-Methode auf die aktuelle Komponente.
Ein Beispiel für die Verwendung der componentDidUpdate-Methode könnte folgendermaßen aussehen:
class Counter extends React.Component
if (prevState.count !== this.state.count)
componentWillUnmount-Methode: Verwendung und Beispiele
Diese Methode ist nützlich, wenn Sie vor dem Entfernen einer Komponente einige Vorgänge ausführen müssen, z. B. das Abmelden von Ereignissen, das Trennen von externen Datenquellen oder das Bereinigen von Ressourcen.
Ein Beispiel für die Verwendung der componentWillUnmount-Methode kann mit dem Abmelden von Ereignissen verknüpft sein. Angenommen, wir haben eine Komponente, die ein Tastatureingabeereignis abonniert, und Sie müssen dieses Ereignis abbestellen, wenn die Komponente entfernt wird. So könnte es aussehen:
from 'react';class MyComponent extends Component componentWillUnmount() handleKeyDown(event)/ обработка события нажатия клавиши> render()
В этом примере метод componentDidMount используется для подписки на событие нажатия клавиши клавиатуры, а метод componentWillUnmount - для отписки от этого события при удалении компонента.
Метод componentWillUnmount является важным инструментом для очистки ресурсов и предотвращения утечек памяти. Он позволяет вам контролировать жизненный цикл компонентов в React и выполнять необходимые операции перед удалением.
Метод getDerivedStateFromProps: использование и примеры
Использование метода getDerivedStateFromProps особенно полезно, когда необходимо обновить состояние компонента после получения новых входных свойств. Например, если компонент принимает свойство isLogged с информацией о том, залогинен ли пользователь, и на основе этого свойства нужно обновить состояние компонента, отображающего информацию о пользователе.
Вот пример использования метода getDerivedStateFromProps:
;>static getDerivedStateFromProps(nextProps, prevState) ;>return null;>render() = this.state;return (Статус входа:
Имя пользователя:
);>>`>
In diesem Beispiel nimmt die userInfo-Komponente die isLogged-Eigenschaft an, die bestimmt, ob der Benutzer eingeloggt ist. Der Wert dieser Eigenschaft wird verwendet, um den Status der Komponente in der getDerivedStateFromProps-Methode zu aktualisieren. Wenn sich die isLogged-Eigenschaft geändert hat, gibt die Methode ein neues Zustandsobjekt mit dem aktualisierten isLogged-Wert zurück.
Die getDerivedStateFromProps-Methode ist statisch, daher müssen Sie das this-Schlüsselwort verwenden, um auf andere statische Eigenschaften zuzugreifen.
Anmerkung: Die Verwendung der getDerivedStateFromProps-Methode sollte minimiert werden, da dies die Verfolgung des Komponentenstatus erschweren und zu Fehlern führen kann. In den meisten Fällen reicht es aus, die componentDidUpdate-Methode zu verwenden, um den Status basierend auf den Eingabeeigenschaften zu aktualisieren.
shouldComponentUpdate-Methode: Verwendung und Beispiele
Diese Methode wird jedes Mal aufgerufen, bevor die Komponente aktualisiert wird. Der Rückgabewert bestimmt, ob die Komponente aktualisiert werden soll oder nicht.
Standardmäßig gibt die shouldComponentUpdate-Methode true zurück, was bedeutet, dass das Aktualisieren der Komponente zulässig ist. Der Entwickler kann diese Methode jedoch mit seiner eigenen Logik überschreiben.
Im Allgemeinen wird die shouldComponentUpdate-Methode verwendet, um verschiedene Bedingungen zu überprüfen, die bestimmen, ob eine Komponente aktualisiert werden muss. Dies kann beispielsweise nützlich sein, wenn wir eine große Menge an Daten haben und unnötige Aktualisierungen vermeiden möchten, falls sich diese Daten nicht geändert haben.
Beispiel für die Verwendung der shouldComponentUpdate-Methode :
class MyComponent extends React.Component ;>shouldComponentUpdate(nextProps, nextState) return true; // обновить компонент>render() Счетчик:
In diesem Beispiel enthält die MyComponent-Komponente einen Zähler, der bei jedem Klicken auf die Schaltfläche inkrementiert wird. Die shouldComponentUpdate-Methode überprüft den aktuellen Zählerwert und den neuen Zählerwert und gibt false zurück, wenn sie gleich sind, um unnötige Aktualisierungen der Komponente zu vermeiden.
Die Verwendung der shouldComponentUpdate-Methode kann sehr nützlich sein, um die Leistung einer React-Anwendung zu verbessern, insbesondere bei der Arbeit mit großen Datenmengen oder häufig aktualisierten Komponenten.
getSnapshotBeforeUpdate-Methode: Verwendung und Beispiele
Diese Methode wird normalerweise zusammen mit der componentDidUpdate-Methode verwendet, um Informationen zum DOM-Status vor und nach der Aktualisierung abzurufen und die entsprechenden Schritte auszuführen.
Die Syntax der getSnapshotBeforeUpdate-Methode lautet wie folgt:
getSnapshotBeforeUpdate(prevProps, prevState)/ выполнение действий перед обновлением компонентаreturn snapshot;>
Der Rückgabewert von der getSnapshotBeforeUpdate-Methode wird als dritter Parameter an die componentDidUpdate-Methode übergeben.
Betrachten Sie ein Beispiel, in dem die getSnapshotBeforeUpdate-Methode verwendet wird, um die Bildlaufposition beizubehalten, bevor die Komponente aktualisiert wird:
class ScrollComponent extends React.Component getSnapshotBeforeUpdate(prevProps, prevState) return null;>componentDidUpdate(prevProps, prevState, snapshot) >render()
В данном примере компонент ScrollComponent отображает список сообщений. Если количество сообщений увеличивается, то метод getSnapshotBeforeUpdate сохраняет текущую позицию прокрутки.
В методе componentDidUpdate мы проверяем, было ли сохранено значение снимка из метода getSnapshotBeforeUpdate , и если да, то восстанавливаем позицию прокрутки.
Метод getSnapshotBeforeUpdate используется для выполнения различных действий, например, для сохранения текущего состояния видимости, размера, положения или других параметров компонента, чтобы использовать их после обновления.
Метод componentDidCatch: использование и примеры
Когда компонент, включая его дочерние компоненты, выбрасывает исключение, метод componentDidCatch может перехватить и обработать это исключение. Он позволяет компонентам отрабатывать ошибки, чтобы избежать поломки всего приложения.
Применение метода componentDidCatch особенно полезно при работе с ошибками, которые могут возникнуть в коде, например, когда компонент загружает данные из сервера или работает со сторонними библиотеками.
Пример использования метода componentDidCatch выглядит следующим образом:
class ErrorBoundary extends React.Component ;>componentDidCatch(error, errorInfo) );// Дополнительная обработка ошибки можно выполнить здесь>render() Что-то пошло не так.;>return this.props.children;>>class ExampleComponent extends React.Component );>>
In diesem Beispiel ErrorBoundary - dies ist eine Wrapperkomponente, die zum Abfangen und Behandeln von Fehlern verwendet wird, und ExampleComponent - die Komponente, in der die Komponente angezeigt wird ChildComponent.
Wenn in einer Komponente ChildComponent ein Fehler tritt auf, dann ist die Methode componentDidCatch in der Komponente ErrorBoundary wird diesen Fehler abfangen. Wir können eine zusätzliche Fehlerbehandlung durchführen und/oder die Fehleranzeige durch etwas Informativeres ersetzen.