개요 Refs는 DOM 노드나 렌더 메소드로 생성된 리액트 요소에 접근할 수 있는 방법을 제공한다. 전형적인 리액트 데이터 흐름에서는, props가 부모와 자식요소간의 interact를 하기 위한 유일한 방법이다. 자식을 modify하기 위해서는 새로운 props로 re-render해야 한다. 그러나 일반적인 데이터 흐름 외부의 자식을 수정해야하는 경우가 있다. modify 되야하는 자식은 리액트 컴포넌트의 instance일 수 있으며, 혹은 DOM element일 수 있다. 이러한 2 케이스를 위해서, 리액트는 escape hatch를 제공한다. 언제 refs를 사용하는가 몇몇 좋은 refs의 사용 케이스가 있다. focus 관리, text 선택, media playback 회피 불가능한 애니메이션의 triggering 3th 파티 DOM librareis와 통합함?! 예를 들어, Dialog 컴포넌트의 open()과 close()라는 메소드를 노출하는 것 보다, isOpen prop을 넘기는 것이 있다. Refs를 남용하지 말 것 첫 번 째 경향은 ''make things happen"으로 앱 안에서 refs를 사용하는 것이다. 이 경우 잠시 시간을내어 구성 요소 계층에서 상태를 소유해야하는 위치에 대해 더 비판적으로 생각하라. 종종, 상태를 소유하기에는 더 높은 레벨의 hierarchy가 더 좋은 위치라는 것이 분명해 진다. lifting state up 가이드를 확인해 보아라. 아니면 우리에겐 리덕스가 있다. Refs 생성 Refs는 React.createRef()로 생성되며 ref attribute를 통해 리액트 요소에 붙게 된다. refs는 보통 일시적인 property로 컴포넌트가 생성될 때 배정된다. 그래서 그들은 컴포넌트를 넘어서 reference가 될 수 있다. ...