Sobes.tech
Middle

Ποια είναι τα methods του κύκλου ζωής στο React και πώς τα εξομοιώνουμε με useEffect;

sobes.tech AI

Απάντηση από AI

Σε μια κλασική συνιστώσα React, υπάρχουν αρκετές μέθοδοι κύκλου ζωής, από τις οποίες οι βασικές είναι:

  • componentDidMount — καλείται μετά την τοποθέτηση της συνιστώσας;
  • componentDidUpdate — καλείται μετά την ενημέρωση της συνιστώσας;
  • componentWillUnmount — καλείται πριν από την αποσύνδεση της συνιστώσας.

Στις λειτουργικές συνιστώσες με το hook useEffect, αυτές οι μέθοδοι μπορούν να εξομοιωθούν ως εξής:

import React, { useEffect } from 'react';

function MyComponent(props) {
  // componentDidMount
  useEffect(() => {
    // κώδικας που εκτελείται μία φορά μετά την τοποθέτηση
    console.log('Mounted');
  }, []); // κενός πίνακας εξαρτήσεων

  // componentDidUpdate
  useEffect(() => {
    // κώδικας που εκτελείται κατά την αλλαγή των props ή της κατάστασης
    console.log('Updated');
  }); // χωρίς δεύτερο όρισμα — καλείται μετά από κάθε ανανέωση

  // componentWillUnmount
  useEffect(() => {
    return () => {
      // κώδικας καθαρισμού πριν από την αποσύνδεση
      console.log('Unmounted');
    };
  }, []);

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

Έτσι, το useEffect με κενό πίνακα εξαρτήσεων εξομοιώνει το componentDidMount και το componentWillUnmount (μέσω της λειτουργίας καθαρισμού), και το useEffect χωρίς δεύτερο όρισμα — το componentDidUpdate.