[React] Hooks

js j·2023년 11월 14일
0

React

목록 보기
2/8
post-thumbnail

Hooks 란?

컴포넌트에서 데이터 관리를 하는것이 State
데이터가 변경될 때 상호작용을 할 때 Effect를 사용한다.
이런 useState가 바로 State Hook이다.

Hook은 React 함수 내에서만 사용이 가능하다. Hook의 이름은 반드시 'use'로 시작해야 하며 최상위에서만 Hook을 호출할 수 있다.

const [username, setUsername] = useState('')

Hook의 종류 - useState

  • 컴포넌트 내 동적인 데이터를 관리할 수 있는 hook이다.
  • 최초에 useState가 호출될 때 초기값으로 설정되며 이후 재 렌더링이 될 경우 무시된다.
  • state는 읽기 전용이라 수정을 하면 안된다.
  • state를 변경하기 위해서는 setState를 이용한다.
  • state가 변경되면 자동으로 컴포넌트가 재 랜더링된다
const [state이름, setState이름] = useState(초기값)

Hook의 종류 - useEffect

  • Effect는 컴포넌트가 최초로 렌더링될 때, 지정한 State나 Prop가 변경될 때마다 이펙트 콜백 함수가 호출된다.
useEffect(EffectCallback, Deps)
  • Deps: 변경을 감지할 변수들의 집합(배열)
  • EffectCallback: Deps에 지정된 변수가 변경될 때 실행할 함수
useEffect(() => {
	console.log('버튼을 ${count}회 클릭한다.')
    },[count])

Hook의 종류 - useMemo

  • 지정한 State나 Props가 변경될 경우 해당 값을 활용해 계산된 값을 메모이제이션하여 재렌더링 시 불필요한 연산을 줄인다.
  • useMemo의 연산은 렌더링 단계에서 이루어지기 떄문에 시간이 오래 걸리는 로직을 작성하지 않는 것이 좋다.
const fullName = useMemo(() => {
	return `${firstName} ${lastName}`
    }, [firstName, lastName])
}

Hook의 종류 - useCallback

  • 함수를 메모리제이션하기 위해 사용하는 Hook
  • 컴포넌트가 재렌더링될 떄 불필요하게 함수가 다시 생성되는 것을 방지한다.
const getfullName = useCallback(() => {
	return `${firstName} ${lastName}`
},[firstName, lastName])

Hook의 종류 - useRef

  • 컴포넌트 생애 주기 내에서 유지할 ref 객체를 반환한다.
  • ref 객체는 .current라는 프로퍼티를 가지며 이 값을 자유롭게 변경할 수 있다.
  • 일반적으로 React에서 DOM Element에 접근 할 때 사용
  • useRef에 의해 반환된 ref 객체가 변경되어도 컴포넌트가 재렌더링되지 않는다.
const inputRef = useRef(null)
const onButtonClick = () => {
	inputRef.current.focus()
}
profile
나의 코딩 일기

0개의 댓글