본문 바로가기

개발언어/React

Ref

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