/ 2024. 12. 26. 09:31

React Hooks 사용법과 실제 활용 사례

 

 

React Hooks 소개

React는 JavaScript 라이브러리로, 사용자 인터페이스 구축을 위해 널리 사용되고 있습니다. 그중에서도 React Hooks는 React 16.8 버전에서 도입된 혁신적인 기능으로, 클래스 컴포넌트 없이도 상태 관리와 다양한 React 기능을 활용할 수 있게 해줍니다. 이는 개발자에게 더 간결하고 효율적인 코드 작성을 가능하게 합니다.

Hook의 기본 개념

Hook은 특정 함수 컴포넌트 내에서 React의 상태와 생명 주기 기능을 통합하여 사용할 수 있도록 해줍니다. 클래스를 사용하지 않기 때문에, 새로운 컴포넌트를 작성할 때 Hook을 활용하는 것이 권장됩니다. 하지만 기존의 클래스 컴포넌트를 모조리 재작성할 필요는 없습니다.

상태 관리: useState

가장 기본적인 Hook 중 하나가 바로 useState입니다. 이 Hook을 사용하면, 컴포넌트 내에서 상태 변수를 선언하고 관리할 수 있습니다. 다음은 카운터 기능을 구현한 간단한 예제입니다:

import React, { useState } from 'react';

function Counter() {

const [count, setCount] = useState(0);

return (

 

현재 클릭 수: {count}회

 

);

}

위의 코드에서 useState는 상태 변수를 선언하고, 초기값으로 0을 설정합니다. 이후 버튼을 클릭할 때마다 카운트가 증가합니다. useState는 현재 상태의 값과 이를 업데이트할 수 있는 함수를 제공합니다. 이는 클래스 컴포넌트의 this.setState와 유사하지만, 이전 상태와 새로운 상태를 결합하지 않는 점에서 차이가 있습니다.

 

여러 개의 상태 변수 관리

하나의 컴포넌트 내에서 여러 개의 상태 변수를 선언할 수도 있습니다. 아래는 나이와 과일 정보를 관리하는 예시입니다:

function MultipleStates() {

const [age, setAge] = useState(30);

const [fruit, setFruit] = useState('사과');

return (

 

나이: {age}

선택한 과일: {fruit}

 

);

}

이처럼, useState를 사용해 컴포넌트 내에서 여러 상태를 독립적으로 관리할 수 있습니다. 각 상태는 useState가 호출된 순서에 따라 관리되기 때문에, 이를 잘 이해하고 활용하는 것이 중요합니다.

 

부수 효과 관리: useEffect

useEffect는 컴포넌트의 생명 주기와 관련된 작업, 즉 부수 효과를 처리하기 위한 Hook입니다. 데이터 가져오기, 이벤트 리스너 등록 및 DOM 업데이트와 같은 작업을 수행할 수 있습니다. 다음은 사용 예시입니다:

import React, { useState, useEffect } from 'react';

function DocumentTitleExample() {

const [count, setCount] = useState(0);

useEffect(() => {

document.title = 클릭 수: ${count}회;

});

return (

 

현재 클릭 수: {count}회

 

 

);

}

위 예제에서는 useEffect를 사용해 버튼 클릭 시 문서의 제목을 업데이트합니다. useEffect는 기본적으로 각 렌더링 후에 실행되며, 처음 렌더링 시에도 동작하는 점이 클래스의 생명 주기 메서드들과의 차이점입니다.

Effect 정리 및 해제

이런 부수 효과는 필요에 따라 정리할 수 있습니다. 다음은 친구의 온라인 상태를 구독하고 해제하는 예제입니다:

function FriendStatus(props) {

const [isOnline, setIsOnline] = useState(null);

useEffect(() => {

const handleStatusChange = (status) => {

setIsOnline(status.isOnline);

};

ChatAPI.subscribeToFriendStatus(props.friend.id, handleStatusChange);

return () => {

ChatAPI.unsubscribeFromFriendStatus(props.friend.id, handleStatusChange);

};

});

if (isOnline === null) {

return '로딩 중...';

}

return isOnline ? '온라인' : '오프라인';

}

이 예제에서는 Effect를 통해 친구의 상태를 구독합니다. 컴포넌트가 언마운트될 때는 구독을 해제하여 메모리 누수를 방지합니다. 이러한 구조는 컴포넌트를 생명 주기 내내 관리하는 데 큰 도움을 줍니다.

결론

React Hooks는 컴포넌트의 상태와 부수 효과를 보다 직관적이고 간편하게 관리할 수 있도록 해주는 강력한 도구입니다. useState와 useEffect와 같은 기본 Hook을 통해 코드의 가독성을 높이고, 유지보수를 용이하게 할 수 있습니다. 개발자들은 이를 통해 클래스 컴포넌트를 대신하여 함수형 컴포넌트를 더욱 효과적으로 활용할 수 있을 것입니다.

 

 

 

사회복지사 1급 응시자격 및 시험 준비

사회복지사 1급 자격증은 전문적인 사회복지 서비스를 제공하는 데 필요한 중요한 자격입니다. 이 자격증을 취득하기 위해서는 일정한 조건과 절차를 따라야 하며, 특히 응시자격이 매우 중요

implantstories.tistory.com

 

자주 찾는 질문 Q&A

React Hooks란 무엇인가요?

React Hooks는 클래스 컴포넌트를 사용하지 않고도 상태와 생명 주기를 관리할 수 있도록 돕는 React의 기능입니다.

useState Hook은 어떻게 사용하나요?

useState Hook을 활용하면 컴포넌트 내에서 상태 변수를 선언하고 이를 업데이트할 수 있습니다. 이는 간편한 상태 관리를 제공합니다.

useEffect Hook의 역할은 무엇인가요?

useEffect Hook은 컴포넌트의 생명 주기와 관련된 작업을 처리하며, 예를 들어 데이터 조회나 DOM 업데이트를 수행하는 데 사용됩니다.

Hooks를 사용할 때 주의할 점은 무엇인가요?

Hooks는 함수형 컴포넌트 내에서만 사용할 수 있으며, 상위 레벨에서 호출해야 합니다. 규칙을 지키는 것이 중요합니다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유