클래스 컴포넌트 ref

정승옥(seungok)·2021년 2월 28일
0

리액트

목록 보기
6/12
post-thumbnail

1. ref (reference)

  • reference 의 준말로 리액트 내부에서 DOM 에 이름을 다는 방법이다.
  • DOM직접적으로 건드려야 할 때 사용한다.
  • DOM 을 꼭 사용해야하는 상황 예시
    👉 특정 input 에 포커싱을 줄 때
    👉 스크롤 박스를 조작할 때
    👉 Canvas 요소에 그림을 그릴 때

2. ref 사용

  • ref는 콜백함수createRef 두 가지 방법으로 사용한다.
  • 콜백함수 사용시 ref 값을 파라미터로 전달 받고 컴포넌트의 멤버 변수로 설정하면 된다.
  • createRef 사용 시 멤버 변수로 담아 해당 멤버 변수를 ref를 달고자 하는 요소의 ref props로 넣어 주면 된다.

3. 사용 방법 (컴포넌트에 ref 달기)

  • 컴포넌트 외부
    • 컴포넌트에 ref 를 달면 내부 메서드멤버 변수에 접근할 수 있다.
    • 여기 주의할 점
      🤜 문법 상으로는 문제가 없지만 처음 렌더링될 때 this.scrollboxundefined 이다.
      🤜 scrollBottom 메소드를 호출할 수 없어 에러가 발생한다.
      🤜 화살표 함수로 감아 새로운 함수를 만들면 초기 렌더링 후 실행되어 문제가 발생하지 않는다.
  • 컴포넌트 내부
    • 멤버변수 this.box 는 바깥 div 를 box가리킨다.
    • scrollBottom 메소드는 클릭 이벤트 함수로 클릭 시 바깥 divscrollTop을 전체 스크롤 높이에서 div 의 높이만큼 뺀 값으로 이동한다.
profile
Front-End Developer 😁

0개의 댓글