본문 바로가기
프로그래밍/개발 언어

React Hooks

by monicada 2022. 7. 28.
728x90

정의

함수형 컴포넌트에서 상태 값 및 다른 여러 기능을 사용하기 편리하게 해주는 메소드

Hook은 class가 아닌 function으로만 react를 사용할 수 있게 해줌 

클래스형 컴포넌트에서는 동작하지 않음 

 

 

Hook사용규칙 

1. 리액트 함수의 최상위에서만 호출해야 함

반복문, 조건문, 중첩된 함수 내에서 hook을 실행하면 예상한 대로 동작하지 않을 우려가 있음 

...
if(counter) {
    const [sample, setSample] = useState(0);
}
...

위의 코드처럼 조건문(if)안에 hook을 가져오면 react는 에러를 호출함 

 

2. 오직 리액트 함수 내에서만 사용되어야 함 

리액트 함수형 컴포넌트나 커스텀hook이 아닌 다른 일반 javascript 함수 안에서 호출은 안됨 

...
window.onload = function () {
    useEffect(() => {
        // do something...
    }, [counter]);
}
...

 

 

useMemo

정의: 특정 값(value)를 재사용하고자 할 때 사용하는 hook 

/* 예시 코드. useMemo를 사용하기 전에는 꼭 import해서 불러와야 합니다. */
import { useMemo } from "react";

function Calculator({value}){

	const result = useMemo(() => calculate(value), [value]);

	return <>
      <div>
					{result}
      </div>
  </>;
}

장점: 복잡한 연산의 중복을 피하고, 리액트 앱의 성능을 최적화함 

 

useCallback

함수의 재사용을 위해 사용하는 Hook

/* 예시코드, useCallback를 사용하기 전에는 꼭 import해서 불러와야 합니다. */
import React, { useCallback } from "react";

function Calculator({x, y}){

	const add = useCallback(() => x + y, [x, y]);

	return <>
      <div>
					{add()}
      </div>
  </>;
}

 

 

'프로그래밍 > 개발 언어' 카테고리의 다른 글

React.memo/useMemo, useCallback  (0) 2022.09.27
GraphQL  (0) 2022.08.02
[React] 상태관리  (0) 2022.07.07
[React] Cmarket Redux  (0) 2022.07.06
Redux  (0) 2022.07.06

댓글