Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann verhindert werden, dass useEffect beim ersten Rendern in React ausgeführt wird?

Barbara Streisand
Freigeben: 2024-11-26 20:03:10
Original
939 Leute haben es durchsucht

How to Prevent useEffect from Running on Initial Render in React?

Verhindern, dass der useEffect-Hook beim ersten Rendern ausgeführt wird

In React bietet der useEffect-Hook eine ähnliche Funktionalität wie die Lebenszyklusmethode „componentDidUpdate“. Im Gegensatz zu „componentDidUpdate“ wird „useEffect“ jedoch nach jedem Rendern ausgeführt, einschließlich des ersten Renderns. Dies kann ein unerwünschtes Verhalten sein, wenn der Effekt erst nach nachfolgenden Updates ausgeführt werden soll.

Um zu verhindern, dass useEffect beim ersten Rendern ausgeführt wird, können wir zwei Ansätze nutzen:

Using der useRef-Hook

Der useRef-Hook ermöglicht es uns, einen veränderlichen Wert zu speichern, der zwischen Renderings bestehen bleibt. Wir können damit nachverfolgen, ob die useEffect-Funktion zum ersten Mal aufgerufen wird.

const firstUpdate = useRef(true);
useLayoutEffect(() => {
  if (firstUpdate.current) {
    firstUpdate.current = false;
    return;
  }

  // Run the effect after the initial render
  console.log("useEffect ran after first render");
}, []);
Nach dem Login kopieren

Verwendung des useLayoutEffect-Hooks

Alternativ können wir den useLayoutEffect verwenden Haken. Im Gegensatz zu useEffect wird useLayoutEffect synchron ausgeführt, nachdem die DOM-Aktualisierungen stattgefunden haben, was dem gleichen Verhalten wie „componentDidUpdate“ entspricht.

useLayoutEffect(() => {
  // Run the effect after the initial render
  console.log("useLayoutEffect ran after first render");
}, []);
Nach dem Login kopieren

Diese Ansätze verhindern effektiv, dass useEffect beim ersten Rendern ausgeführt wird, und stellen so sicher, dass der Effekt erst nach nachfolgenden Renderings auftritt Updates, genau wie ComponentDidUpdate.

Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass useEffect beim ersten Rendern in React ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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