React Lifecycle & useEffect 1

Inseok Park·2022년 8월 22일
0

React 쇼핑몰 만들기

목록 보기
5/15
post-thumbnail

Lifecycle

컴포넌트는 Lifecycle이라는 개념이 있다.
1. 생성이 될 수도 있고(mount)
2. 재랜더링이 될 수도 있고(update)
3. 삭제가 될 수도 있다.(unmount)
컴포넌트의 사이클에 따라서 해당 시점에 특정코드를 실행할 수 있다.
해당 시점에 갈고리를 달아서 코드를 넣어주면 되는데 갈고리는 영어로 hook이라고 한다.
그래서 이 방식을 Lifecycle hook이라고 한다.

예전 클래스형 문법 react에서 쓰던 방법

class Detail2 extends React.Component {
  componentDidMount(){
    //Detail2 컴포넌트가 로드되고나서 실행할 코드
  }
  componentDidUpdate(){
    //Detail2 컴포넌트가 업데이트 되고나서 실행할 코드
  }
  componentWillUnmount(){
    //Detail2 컴포넌트가 삭제되기전에 실행할 코드
  }
}

현재 React에서 Lifecycle hook 사용법✨

// 상단에서 useEffect import해오기
import {useState, useEffect} from 'react';

function Detail(){

  useEffect(()=>{
    //여기적은 코드는 컴포넌트 로드 & 업데이트 마다 실행됨
    console.log('hi')
  });

  let [count, setCount] = useState(0)
  
  return (
    <button onClick={()=>{ setCount(count+1) }}>버튼</button>
  )
}

useEffect의 유래는 side effect에서 온 것인데
함수의 핵심기능 외에 다른 부가기능들을 side effect라고한다.
컴포넌트의 핵심 기능은 html렌더링이라고 볼 수 있기때문에 그 외의 기능들은 useEffect 안에 넣으면 된다.
useEffect 안에 적은 코드는 html 렌더링 이후에 동작하므로
보통 오래걸리는 반복연산, 서버에서 데이터를 가져오는 비동기 작업, 타이머함수 등은
useEffect 안에 적는다.

0개의 댓글

관련 채용 정보