React { useRef }

Evan Lee ㅣ 2022. 7. 11. 04:01

useRef 

밑에는 요소의 아이디를 강제해서 해당 요소가 랜더딩되면 focus가 되게 하게 끔 만들었다. 이걸를 useRef를 사용하면 

    const rootElement = document.getElementById('root');
    
    const App = () => {
      React.useEffect(() => {
        document.getElementById("input").focus()
      },[]);

      return(
      <>
        <input id="input" />
      </>
    );
  };

  ReactDOM.render(<App />, document.getElementById("root"));

밑에 같은 코드로 바뀐다.  useRef()로 만들어진 무언가를 inputRef라는 변수에 넣어주고,  원하는 요소에 ref라는 속성에 변수를 넣어주고, useEffect에 Input.current.focus()를 넣어준다. 하지만 왜 이렇게 까지 하는 것일까 ? 

    const rootElement = document.getElementById('root');
    
    const App = () => {
      const inputRef = React.useRef();
      React.useEffect(() => {
        inputRef.current.focus();
      },[]);

      return(
      <>
        <input ref={inputRef} />
      </>
    );
  };

  ReactDOM.render(<App />, document.getElementById("root"));

 

Ref로 DOM을 다루는 이유는  사용자가 직접 DOM으로 요소를 접근하는 것보다 React 스스로 관장하는 그 틀에서 요소로 접근하는게 더 효율적이기 때문입니다. useRef로 특정 혹은 생성된 값은 옆에 .current를 붙여서 접근할 수 있다. 

'Study > React' 카테고리의 다른 글

React { Error Handling }  (0) 2022.07.12
React { Form }  (0) 2022.07.11
React { Element props }  (0) 2022.07.10
React { Hook }  (0) 2022.07.09
React { useState, useEffect }  (0) 2022.07.09