Sobes.tech
Middle

Millised elutsükli meetodid on Reactis olemas ja kuidas neid useEffect abil emuleerida?

sobes.tech AI

Vastus AI-lt

Reacti klassikomponendis on mitu elutsükli meetodit, millest peamised on:

  • componentDidMount — kutsutakse pärast komponendi monteerimist;
  • componentDidUpdate — kutsutakse pärast komponendi uuendamist;
  • componentWillUnmount — kutsutakse enne komponendi eemaldamist.

Funktsionaalsetes komponentides, kasutades hooki useEffect, saab neid meetodeid emuleerida järgmiselt:

import React, { useEffect } from 'react';

function MyComponent(props) {
  // componentDidMount
  useEffect(() => {
    // kood, mis käivitub üks kord pärast monteerimist
    console.log('Mounted');
  }, []); // tühi sõltuvuste massiiv

  // componentDidUpdate
  useEffect(() => {
    // kood, mis käivitub props või oleku muutmisel
    console.log('Updated');
  }); // ilma teise argumendita — käivitub pärast iga renderdamist

  // componentWillUnmount
  useEffect(() => {
    return () => {
      // puhastuskood enne eemaldamist
      console.log('Unmounted');
    };
  }, []);

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

Seega emuleerib useEffect tühja sõltuvuste massiivi kaudu componentDidMount ja componentWillUnmount (puhastuse funktsiooni kaudu), ning ilma teise argumendita — componentDidUpdate.