본문 바로가기

기술블로그

React Hooks : useEffect()

useEffect 함수는 리액트 컴포넌트가 렌더링 될 때마다 특정 작업을 실행할 수 있도록 하는 Hook이다.

useEffect는 component가 mount 됐을 때, component가 unmount 됐을 때, component가 update 됐을 때,

특정 작업을 처리할 수 있다.

즉, 클래스형 컴포넌트에서 사용할 수 있었던 생명주기 메소드를 함수형 컴포넌트에서도 사용할 수 있게 된 것이다.

 

useEffect() 사용법

기본형태:

 useEffect( function, deps)

- function : 수행하고자 하는 작업

- deps : 배열 형태이며, 배열 안에는 검사하고자 하는 특정 값 or 배열

import React, { useEffect} from 'react'

useEffect 함수 불러오기

 

useEffect(() => {
	console.log('마운트 될 떄만 실행된다');
    }, []);

1. Component가 mount 됐을 때

 

- 컴포넌트가 화면에 가장 처음 렌더링 될 떄 한번만 실행하고 싶을 때는 deps 위치에 빈 배열을 놓는다.

 

useEffect(() =>{
	conosloe.log('렌더링 될 떄 마다 실행된다')
});

- 만약 배열을 생략한다면 리렌더링 될 때 마다 실행된다.

 

useEffect(() => {
	console.log(name);
    console.log('업데이트 될 때 실행된다');
}, [name]);

2. Component 가 update 될 때 (특정 props, state가 바뀔 때)

 

-특정값이 업데이트 될 떄 실행하고 싶을 때는 deps 위치의 배열 안에 검사하고 싶은 값을 넣어준다.

 

-업데이트 될 때만 실행하는 것이 아니라 마운트 될 때도 실행한다.

 

const mount = useRef(false);

useEffect(() => {
	if(!mounted.current){
    	mounted.current = true;
     }else{
     //ajax
     }
   },[바뀌는값]);

- 컴포넌트가 마운트 될 때는 if 문에서 아무것도 실핸하지 않고 mounted 값만 바꿔주고,

else에서 배열 안에 있는 값이 바뀌면,ajax 서버 통신같은 원하는 코드를 실행 할 수 있다.

 

3. Component 가 unmount 될 때 & update 되기 직전에

 

-cleanup 함수 반환

 

-언마운트 될 때만 cleanup 함수를 실행하고 싶을 때

:두 번째 파라미터로 빈 배열을 넣어준다

 

-특정값이 업데이트 되기 직전에 cleanup 함수를 실행하고 싶을 때

:deps 배열 안에 검사하고 싶은 값을 넣어준다.

'기술블로그' 카테고리의 다른 글

Mini Node Server  (0) 2023.02.06
CORS  (0) 2023.02.06
Javascript - promise  (0) 2023.02.03
StatesAirline Client - Part 1  (0) 2023.02.02
POSTMAN으로 날씨 받기  (0) 2023.02.01