Sobes.tech
Middle

Milyen életciklus-módszerek léteznek a React-ben, és hogyan lehet őket useEffect segítségével emulálni?

sobes.tech MI

Válasz az MI-től

Egy React osztálykomponensben több életciklus-metódus van, amelyek közül a fők:

  • componentDidMount — a komponens felszerelése után hívódik meg;
  • componentDidUpdate — a komponens frissítése után hívódik meg;
  • componentWillUnmount — a komponens leválasztása előtt hívódik meg.

Funkcionális komponensekben a useEffect hook segítségével ezeket a módszereket a következőképpen lehet emulálni:

import React, { useEffect } from 'react';

function MyComponent(props) {
  // componentDidMount
  useEffect(() => {
    // kód, amely egyszer fut a felszerelés után
    console.log('Mounted');
  }, []); // üres függőségi tömb

  // componentDidUpdate
  useEffect(() => {
    // kód, amely a props vagy az állapot változásakor fut
    console.log('Updated');
  }); // második argumentum nélkül — minden render után hívódik

  // componentWillUnmount
  useEffect(() => {
    return () => {
      // tisztítási kód a leválasztás előtt
      console.log('Unmounted');
    };
  }, []);

  return <div>{props.value}</div>;
}

Így a useEffect üres függőségi tömbbel emulálja a componentDidMount és a componentWillUnmount (a tisztítási funkció segítségével), a useEffect második argumentum nélkül pedig a componentDidUpdate-et.