0개요
Ref는 'reference'의 약자로, '참조'라는 뜻이다. element가 참조하는 변수에 접근해 변경하고 element를 제어할 수 있다.
javascript나 jquery에서 id나 class와 같은 속성에 element로 접근하여 값을 가져오는 구조와 유사하나,
표현 문법에서 차이를 보인다.
https://ko.reactjs.org/docs/refs-and-the-dom.html
1.예시코드
1_a) 리액트 Ref
constructor(props){
// createRef()함수로 Ref변수 InputRef를 생성한다.
this.InputRef = React.createRef();
}
RefFocus = (e) => {
// inputRef를 할당해 참조하도록 한다.
// ref를 부여한 요소에, current로 접근
this.InputRef.current.focus();
}
render() {
return (
<>
<input type="text" id='id' ref={this.InputRef}/>
// 버튼형태의 input태그를 실행하므로 해서, RefFocus호출하여,
// ref={this.InputRef}가 지정된 input태그가 focus된다
<input type="button" value="Ref Focus" onClick={this.RefFocus}/>
</>
);
}
1_b) javascript
JavascriptFocus(){
document.getElementById('id').focus();
}
render() {
return (
<>
<input type="text" id='id' ref={this.InputRef}/>
// 버튼형태의 input 태그를 클릭하여 JavascriptFocus()호출하고,
// id가 'id'로 지정된 input태그로 포커스가 지어진다
<input type="button" value="Javascript Focus" onClick={this.JavascriptFocus}/>
</>
);
}
2 결론
- React의 Ref와 , javascript 의 Element는 지정한 요소에 대해 접근할 수 있다. (위 코드에서는 RefFocus 함수와 javascript 함수는 동일하게 작동한다. )
- Ref는 React.createRef()를 통해 생성되고, ref 어트리뷰트를 통해 React 엘리먼트에 부착하게 된다.
this.myRef = React.createRef();
- render() 안에서 ref가 엘리먼트게 전달되었을때, ref의 current 의 어트리뷰트에 담기게 된다.
const node = this.myRef.current;
'개발언어 > React' 카테고리의 다른 글
React기본 문법 _ props는 읽기전용이다. (0) | 2023.02.22 |
---|---|
Currying(커링 함수) (0) | 2022.09.26 |