> 웹 프론트엔드 > JS 튜토리얼 > useRef를 사용하여 React의 상태 관리

useRef를 사용하여 React의 상태 관리

Barbara Streisand
풀어 주다: 2024-10-29 21:56:03
원래의
681명이 탐색했습니다.

Managing State in React with useRef

React 애플리케이션을 구축할 때 상태 관리는 기본적인 측면입니다. 대부분의 개발자는 useState에 익숙하지만 useRef 후크는 종종 탐지되지 않습니다. 이 블로그에서는 useRef가 상태를 관리하고 고유한 사용 사례를 이해하는 데 어떻게 강력한 도구가 될 수 있는지 살펴보겠습니다.

useRef란 무엇인가요?

useRef 후크는 .current 속성이 전달된 인수로 초기화되는 변경 가능한 ref 객체를 반환합니다. 이 참조 개체는 구성 요소의 전체 수명 동안 유지됩니다. 상태와 달리 참조를 변경해도 구성 요소가 다시 렌더링되지 않습니다.

왜 useRef를 사용하나요?

DOM 요소 액세스: useRef는 일반적으로 DOM 요소에 직접 액세스하는 데 사용되므로 다시 렌더링하지 않고도 DOM 요소를 조작할 수 있습니다.
변경 가능한 값 저장: useRef를 사용하면 타이머나 이전 상태 값과 같이 업데이트 시 다시 렌더링할 필요가 없는 값을 저장할 수 있습니다.

예: useRef를 사용하여 상태 관리

간단한 카운터 예시에서 useRef를 사용하여 상태를 관리하는 방법을 살펴보겠습니다. 이 예에서는 불필요한 재렌더링을 유발하지 않고 카운터를 증가시키는 방법을 보여줍니다.

단계별 구현

import React, { useRef } from 'react';

function Counter() {
    // Create a ref to hold the count
    const countRef = useRef(0);

    const increment = () => {
        countRef.current += 1; // Increment the count
        alert(`Current Count: ${countRef.current}`); // Show the current count
    };

    return (
        <div>
            <h1>Counter Example</h1>
            <button onClick={increment}>Increment</button>
        </div>
    );
}

export default Counter;
로그인 후 복사

코드 분석

Ref 생성: useRef(0)을 사용하여 countRef를 초기화합니다. 그러면 초기 개수가 0으로 설정됩니다.
Count 증가: 증가 함수에서는 countRef.current를 직접 업데이트합니다. 이렇게 하면 다시 렌더링이 실행되지 않으므로 성능면에서 효율적입니다.
사용자 피드백: 버튼을 클릭할 때마다 경고에 현재 개수가 표시됩니다.

useState보다 useRef를 사용해야 하는 경우

성능: 다시 렌더링하지 않고 값을 저장해야 하는 경우 useRef를 사용하는 것이 좋습니다. 이는 성능에 민감한 애플리케이션에 특히 유용합니다.
비 UI 상태: 타이머, 간격, 양식 요소 참조 등 렌더링과 직접 관련되지 않은 값에는 useRef를 사용하세요.

결론

useState는 렌더링에 영향을 미치는 상태를 관리하는 데 필수적이지만 useRef는 다시 렌더링을 트리거하지 않고 변경 가능한 값을 관리하기 위한 가벼운 대안을 제공합니다. useRef를 언제 사용해야 하는지 이해하면 보다 효율적이고 효과적인 React 구성 요소를 작성하는 데 도움이 됩니다.

다음번에 React에서 상태 작업을 할 때 useRef가 작업에 적합한 도구인지 고려해보세요! 즐거운 코딩하세요!

위 내용은 useRef를 사용하여 React의 상태 관리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿