본문 바로가기

⭐ React (리액트)/리액트 기본

9. useRef

728x90
반응형

# useRef

useRef 란?

useRef란 특정 DOM을 선택할 수 있게끔 해주는 기능을 가진 녀석이다. 리액트를 사용할때 간혹 DOM을 직접 선택해서 엘리먼트의 크기를 가져와야 한다던지, 스크롤바 위치를 가져오거나 설정해야된다던지, 또는 포커스를 설정해줘야하던지 다양한 상황이 있을때 사용을 한다.

 

DOM 이란?

DOM(Document Object Model)은 웹 페이지를 이루는 태그들을 자바스크립트가 이용할 수 있게끔 브라우저가 트리구조로 만든 객체 모델을 의미한다. DOM(Document Object Model)을 영어 뜻풀이 그대로 하자면 문서 객체 모델을 의미한다.

// useRef (디자인)

import { createRef, useRef, useState } from 'react';

// dom을 변경할때 사용
function App() {
  const myRef = useRef(null);

  const [list, setList] = useState([
    { id: 1, name: '길동' },
    { id: 2, name: '꺽정' },
  ]);

  const myRefs = Array.from({ length: list.length }).map(() => createRef());

  return (
    <div>
      <button
        onClick={() => {
          console.log(myRef);
          console.log(myRef.current);
          // myRef.current.style.backgroundColor = 'red';

          myRefs[1].current.style.backgroundColor = 'red';
        }}
      >
        색 변경
      </button>
      <div ref={myRef}>박스</div>
      {list.map((user, index) => (
        <h1 ref={myRefs[index]}>{user.name}</h1>
      ))}
    </div>
  );
}

export default App;
728x90
반응형

'⭐ React (리액트) > 리액트 기본' 카테고리의 다른 글

리액트 기본 구조 자동으로 생성하기 (rsc 사용)  (0) 2022.05.18
yarn 및 styled-components 설치하기  (0) 2022.05.18
8. useMomo  (0) 2022.05.18
7. useEffect (import & export)  (0) 2022.05.18
6. userState  (0) 2022.05.17