React.js는 JavaScript를 기반으로 한 인기있는 프론트엔드 라이브러리입니다. 컴포넌트 기반 아키텍처를 사용하여 웹 애플리케이션을 구축하는 데 도움을 줍니다. React 컴포넌트는 라이프사이클 이벤트를 가지고 있으며, 이를 통해 컴포넌트의 상태 변화 및 동작을 관리할 수 있습니다.
라이프사이클 이벤트는 컴포넌트가 생성되고 소멸될 때 발생하는 이벤트입니다. 예를 들어, 컴포넌트가 생성될 때 초기화 작업을 수행하거나, 상태가 변경될 때 UI를 업데이트하는 등의 작업을 처리할 수 있습니다.
React에서는 컴포넌트의 라이프사이클 이벤트를 관리하기 위해 React.forwardRef()
함수를 제공합니다. 이 함수를 사용하면, 부모 컴포넌트에서 자식 컴포넌트로 ref를 전달할 수 있으며, 자식 컴포넌트에서 ref를 사용하여 이벤트를 관리할 수 있습니다.
아래는 React.forwardRef()
를 사용하여 컴포넌트의 라이프사이클 이벤트를 관리하는 예시 코드입니다.
import React, { useRef } from 'react';
const ChildComponent = React.forwardRef((props, ref) => {
const buttonRef = useRef(null);
const handleClick = () => {
// 버튼 클릭 이벤트 처리
};
// 부모 컴포넌트에서 전달한 ref를 자식 컴포넌트의 버튼에 연결
React.useImperativeHandle(ref, () => ({
// 자식 컴포넌트에서 실행할 메소드 작성
focusButton: () => {
buttonRef.current.focus();
}
}));
return (
<button ref={buttonRef} onClick={handleClick}>버튼</button>
);
});
const ParentComponent = () => {
const childRef = useRef(null);
const handleButtonClick = () => {
childRef.current.focusButton();
};
return (
<div>
<ChildComponent ref={childRef} />
<button onClick={handleButtonClick}>자식 컴포넌트 버튼에 포커스</button>
</div>
);
};
위의 예시 코드에서는 ChildComponent
라는 컴포넌트를 React.forwardRef()
로 감싸고, useImperativeHandle()
를 사용하여 자식 컴포넌트의 메소드를 정의하고 부모 컴포넌트에 공개합니다. 그리고 ParentComponent
에서는 자식 컴포넌트로 ref를 전달하여 자식 컴포넌트의 이벤트를 관리합니다.
이렇게 React.forwardRef()
를 사용하면 컴포넌트 간에 ref를 전달하고 라이프사이클 이벤트를 관리할 수 있습니다.
더 자세한 내용은 React 공식문서를 참조하시기 바랍니다.
#React #라이프사이클이벤트