
원래 HTML에서 DOM요소에 이름을 달때는 ID를 사용한다
→ 이렇게 된다면 (특정)DOM에 접근할수 있게 된다
그렇담 리엑트에는? → ref를 이용하여 DOM에 이름을 단다
DOM을 꼭 직접적으로 건드려야 할 때
state로도 필요기능을 구현할수 있지만, 가끔 state로 해결 못하는 경우가 있다
일단 클래스형으로 (this가 존내 나옴 앞에)
기본적인 방법으로 ref를 달고자 하는 요소에 ref라는 콜백 함수를 props로 전달해줌
함수 내부에서 파라미터로 받은 ref ⇒ 컴포넌트의 멤버 변수로 설정해준다
<input ref = {(ref) => {this.input=ref}}/>
이 뒤에 this.input은 이제 input요소의 DOM(input을 만든 DOM)을 가르키게 된다.
리액트에서 제공하는 createRef함수를 이용한다
input = React.createRef();
....
<input ref={this.input}
이제 this.input은 input요소의 DOM을 가르킨다
<MyComponent
ref={(ref) => {this.myComponent = ref}}
/>
이렇게 하면 MyComponent 내부의 메서드 및 멤버 변수에도 접근 할수 있다
즉, 내부의 ref에 접근 가능
예시 : myComponent.handleClick ⇒ 컴포넌트 내부에 있는 함수를 사용한다.