Sobes.tech
Middle

Kokios gyvenimo ciklo metodai yra React ir kaip juos emuliuoti naudojant useEffect?

sobes.tech AI

Atsakymas iš AI

React klasės komponento gyvenimo ciklo metodų yra keletas, iš kurių pagrindiniai:

  • componentDidMount — kviečiamas po komponento montavimo;
  • componentDidUpdate — kviečiamas po komponento atnaujinimo;
  • componentWillUnmount — kviečiamas prieš komponento išmontavimą.

Funkcinėse komponentuose su hook useEffect šiuos metodus galima emuliuoti taip:

import React, { useEffect } from 'react';

function MyComponent(props) {
  // componentDidMount
  useEffect(() => {
    // kodas, kuris vykdomas vieną kartą po montavimo
    console.log('Mounted');
  }, []); // tuščias priklausomybių masyvas

  // componentDidUpdate
  useEffect(() => {
    // kodas, kuris vykdomas keičiant props ar būseną
    console.log('Updated');
  }); // be antrojo argumento — iškviečiama po kiekvieno perrėžimo

  // componentWillUnmount
  useEffect(() => {
    return () => {
      // valymo kodas prieš išmontavimą
      console.log('Unmounted');
    };
  }, []);

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

Taip useEffect su tuščiu priklausomybių masyvu emuliuoja componentDidMount ir componentWillUnmount (per valymo funkciją), o useEffect be antrojo argumento — componentDidUpdate.