Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

ENN

리액트 훅(useState, useEffect, useMemo, useCallback, useRef, 본문

프론트엔드

리액트 훅(useState, useEffect, useMemo, useCallback, useRef,

k.dahee 2022. 9. 13. 00:10

Hook이란?

- Hook: React 버전 16.8부터 리액트 요소로 새로 추가되었으며, 기존 class 바탕의 코드를 작성할 필요 없이 상태 값과 여러 리액트의 기능을 사용할 수 있게 해주는 요소

- 훅이 존재하기 이전에는 상태 관련 로직이 하나로 묶이기 때문에 상태 로직을 재사용하는 것이 어려웠다. 여기에 훅을 도입하면서 상태 로직을 추상화하여 재사용이 가능하게 한다.

- Hook을 통해 서로 비슷한 것을 하는 작은 함수의 묶음으로 컴포넌트를 나누는 방법을 통해 컴포넌트 재사용이 가능하다. 

 

리액트 내장 훅 API

 

1. useState()

import React, {useState} from 'react';
const [state, setState] = useState(initialState);

- useState는 현재 state값과 state값을 업데이트하는 setState함수를 쌍으로 제공함

- initialValue는 첫 렌더링에서만 사용됨

2. useEffect()

import React, {useEffect} from 'react';
useEffect(callback, deps[])

callback

- 수행하고자하는작업

deps

- callback을 실행시킬 조건을 배열의 형태로 저장.

- 특정값을 넣게 되면 컴포넌트가 마운트될때, 지정한 값이 업데이트될 때 useEffect를 실행시킴

 

1) 컴포넌트가 마운트 될때

useEffect(()=>{
console.log("렌더링시 실행");
});

2) 컴포넌트가 props, state변경으로 업데이트 될때

useEffect(()=>{
console.log(state);
console.log("state가 업데이트 될 때 실행");
},[state]);

 

3. useCallback()

useCallback(
  () => {
    first
  },
  [second],
)

4. useMemo()

- 컴포넌트를 리렌더링 할 때, 변화가 없는 부분은 리렌더링 되지 않고, 이전에 연산된 값인 memorized value를 반환함. 

const Value = useMemo(callback, dependency[]);

5. useRef()

- 함수형 컴포넌트에서 ref를 쉽게 사용할 수 있도록 하는 API이며 리렌더링 되더라도 동일한 참조값을 유지하게 하기위한 API

const reference = useRef(initialValue);

'프론트엔드' 카테고리의 다른 글

Styled-components  (0) 2022.09.14
Next.js  (0) 2022.09.14
Redux, react-redux, redux toolkit  (0) 2022.09.13
[React] 리액트 Router  (0) 2022.09.11
npx vs npm vs yarn  (0) 2022.09.10