Sobes.tech
Middle

Jaké metody životního cyklu existují v Reactu a jak je pomocí useEffect emulovat?

sobes.tech AI

Odpověď od AI

Ve třídní komponentě React existuje několik metod životního cyklu, z nichž hlavní jsou:

  • componentDidMount — je volána po namontování komponenty;
  • componentDidUpdate — je volána po aktualizaci komponenty;
  • componentWillUnmount — je volána před odmontováním komponenty.

U funkčních komponent s hookem useEffect lze tyto metody emulovat následovně:

import React, { useEffect } from 'react';

function MyComponent(props) {
  // componentDidMount
  useEffect(() => {
    // kód, který se spustí jednou po namontování
    console.log('Mounted');
  }, []); // prázdné pole závislostí

  // componentDidUpdate
  useEffect(() => {
    // kód, který se spustí při změně props nebo stavu
    console.log('Updated');
  }); // bez druhého argumentu — volá se po každém renderu

  // componentWillUnmount
  useEffect(() => {
    return () => {
      // kód čištění před odmontováním
      console.log('Unmounted');
    };
  }, []);

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

Tímto způsobem useEffect s prázdným polem závislostí emuluje componentDidMount a componentWillUnmount (přes funkci čištění), a useEffect bez druhého argumentu — componentDidUpdate.