The Ref Context Pattern in React
- React의 기본 하향식(top-down) 데이터 흐름 한계를 극복하고, 상위 컴포넌트가 하위 컴포넌트의 상태를 직접 변경할 수 있도록 하는 "Ref Context 패턴"을 소개합니다. 🔄
- 이 패턴은 상태를 상위로 끌어올리는(lifting state up) 대신,
Context와 Ref를 활용하여 하위 컴포넌트에서 상위로 "거슬러 올라가는" 명령형 접근 방식을 사용합니다. ⬆️
- 핵심은
Context를 통해 useRef로 생성된 Ref를 공유하고, 상태를 가진 하위 컴포넌트 내부에서 useImperativeHandle 훅을 사용하여 Ref에 상태 업데이트 함수를 연결하는 것입니다. 🛠️
useImperativeHandle은 Context로부터 받은 Ref에 updateCount와 같은 특정 함수를 노출시키며, 이 함수는 해당 컴포넌트의 로컬 상태(setCount)를 직접 변경합니다. 🔗
- 결과적으로, Context 내의 어떤 컴포넌트든 공유된 Ref에 접근하여 연결된 함수를 호출함으로써, 특정 하위 컴포넌트의 로컬 상태를 직접적이고 명령적으로 업데이트할 수 있게 됩니다. ✨
- 이는 prop drilling 없이도 컴포넌트 계층 구조 내에서 특정 컴포넌트의 상태를 외부에서 유연하게 제어할 수 있는 강력한 방법을 제공합니다. 🚀