함수형 컴포넌트에서 useEffect 를 이용해서 Lifecycle 를 관리 할 수 있습니다.

import React, { useEffect } from "react";
useEffect 를 사용 합니다.의존성 배열에 들어있는 값 중 하나라도 변화하면, 첫 번째 파라미터인 콜백 함수가 다시 수행
import React, { useEffect, useState } from 'react';
const Lifecycle = () => {
  const [count, setCount] = useState(0);
  const [text, setText] = useState('');
  
  // Mount
  useEffect(() => {
    console.log('Mount!');
  }, []);
  // Update
  useEffect(() => {
    console.log('update!');
  });
  return (
    <div style={{ padding: 20 }}>
      <div>
        {count}
        <button onClick={() => setCount(count + 1)}>+</button>
      </div>
      <div>
        <input value={text} onChange={(e) => setText(e.target.value)} />
      </div>
    </div>
  );
};
export default Lifecycle;
useEffect(() => {
    console.log('Mount!');
}, []);
Mount 되는 시점에 console 이 실행이 됩니다.useEffect 의 두 번째 인자인 뎁스에 빈 배열을 전달 한 다음에 콜백 함수에 개발자가 하고 싶은 일을 넣으면 됩니다.리렌더 된다는 뜻은 컴포넌트가 업데이트 된다는 말과 동일 합니다.
useEffect(()=>{
	console.log("update!");
})

useEffect(() => {
    console.log(`count is update ${count}`);
    if (count > 5) {
      alert('count 가 5 를 넘었습니다. 따라서 1로 초기화 합니다.');
      setCount(1);
    }
  }, [count]);

import React, { useEffect, useState } from 'react';
const UnmountTest = () => {
  useEffect(() => {
    console.log('Mount!');
    return () => {
      // Unmount 시점에서 실행
      console.log('Unmount!');
    };
  }, []);
  return <div>Unmount Testing Component</div>; // True인 경우 화면에 return
};
const Lifecycle = () => {
  const [isVisible, setIsVisible] = useState(false);
  const toggle = () => setIsVisible(!isVisible);
  return (
    <div style={{ padding: 20 }}>
      <button onClick={toggle}>ON / OFF</button>
      {isVisible && <UnmountTest />}
    </div>
  );
};
export default Lifecycle;
{isVisible && <UnmountTest/>} 
isVisible 이 True 인 경우만 UnmountTest 컴포넌트가 화면에 렌더링이 됩니다.isVisible 이 Fales 인 경우는 && (and) 연산자여서 모두 True 인 경우만 유효하기 때문에 비교를 할 수 없습니다. 즉 렌더링이 되지 않습니다.const UnmountTest = () => {
  useEffect(() => {
    // Mount 에 전달되는 콜백 함수
    console.log('Mount!');
    return () => {
      // Unmount 시점에서 실행
      console.log('Unmount!');
    };
  }, []);
