라이프사이클이란?

LifeCycle = 생애주기

Mount

  • like 탄생
  • 컴포넌트가 탄생하는 순간 (A 컴포넌트가 마운트 되었다)
  • 화면에 처음 렌더링 되는 순간
  • 서버에서 데이터를 불러오는 작업

Update

  • like 변화
  • 컴포넌트가 다시 렌더링 되는순간
  • 리렌더링 될 때를 의미
  • 어떤 값이 변경되었는지 콘솔에 출력

UnMount

  • like 죽음
  • 컴포넌트가 화면에서 사라지는 순간
  • 렌더링에서 제외 되는 순간을 의미 
  • 컴포넌트가 사용하던 메모리 정리 

 

컴포넌트의 라이프 사이클 단계별로 컴포넌트들이 각각 다른 작업을 수행하도록 하는 것을 라이프사이클 제어라고 하는데, React Hook인 useEffect를 활용할 수 있다.

 

useEffect

리액트 텀포넌트의 사이드 이펙트를 제어하는 새로운 리액트 훅

사이드 이펙트 : 우리말로 부작용이라는 뜻이지만, 리액트에서는 "부수적인 효과", "파생되는 효과" 정도로 해석

 

컴포넌트의 동작에 따라 파생되는 여러가지 효과

 

 

import "./App.css";
import Viewer from "./components/Viewer";
import Controller from "./components/Controller";
import { useState, useEffect } from "react";

function App() {
  const [count, setCount] = useState(0);

  useEffect(() => {
    //콜백 실행
  }, [count, input]); 
  //변화를 감지할 값을 넣음
  //의존성 배열
  // dependency array
  // deps

  const onClickButton = (value) => {
    setCount(count + value);
  };

  return (
    <div className="App">
      <h1>Simple Counter</h1>
      <section>
        <Viewer count={count} />
      </section>
      <section>
        <Controller onClickButton={onClickButton} />
      </section>
    </div>
  );
}

export default App;

 

 

라이프사이클 제어하기

마운트

deps로 빈배열 넣으면 최초 실행될 때 한번만 동작함 

 useEffect(() => {}, []);

 

업데이트

리렌더링 될때마다 실행됨 

 useEffect(() => {});

 

useRef로 상태를 확인하여 제어하는 법

처음 마운트 될때는 건너뛰고 업데이트가 있을 때만 콜백 실행됨

const isMount = useRef(false);

useEffect(() => {
// false : 컴포넌트가 아직 마운트 되지 않은 상황
 if(!isMount.current) {
 isMount.,current = true;
 return;
 }
 });

 

언마운트

 useEffect(() => {
 //클린업, 정리함수 : 언마운트될때 호출됨
 return () => {};
 }, []);

'Frontend > React.js' 카테고리의 다른 글

[React.js] 페이지 라우팅  (0) 2024.06.12
[React.js] Context  (1) 2024.06.12
[React.js] 최적화  (1) 2024.06.12
[React.js] 리액트 입문  (0) 2024.06.11
[React.js] React.js 개론  (0) 2024.06.11
복사했습니다!