Sobes.tech
Middle

Kādi dzīves cikla metodi pastāv React un kā tos imitēt ar useEffect?

sobes.tech AI

Atbilde no AI

React klases komponentā ir vairākas dzīves cikla metodes, no kurām galvenās ir:

  • componentDidMount — tiek izsaukta pēc komponenta montēšanas;
  • componentDidUpdate — tiek izsaukta pēc komponenta atjaunināšanas;
  • componentWillUnmount — tiek izsaukta pirms komponenta noņemšanas.

Funkcionālajās komponentēs ar hook useEffect šīs metodes var emulēt šādi:

import React, { useEffect } from 'react';

function MyComponent(props) {
  // componentDidMount
  useEffect(() => {
    // kods, kas tiek izpildīts vienu reizi pēc montāžas
    console.log('Mounted');
  }, []); // tukšs atkarību masīvs

  // componentDidUpdate
  useEffect(() => {
    // kods, kas tiek izpildīts, mainoties props vai stāvoklim
    console.log('Updated');
  }); // bez otrā argumenta — tiek izsaukts pēc katra renderēšanas

  // componentWillUnmount
  useEffect(() => {
    return () => {
      // tīrīšanas kods pirms noņemšanas
      console.log('Unmounted');
    };
  }, []);

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

Tādējādi useEffect ar tukšu atkarību masīvu emulē componentDidMount un componentWillUnmount (caur tīrīšanas funkciju), bet useEffect bez otra argumenta — componentDidUpdate.