리뷰는 여기서 - 일일 아티클
brew install -cask ngrok
으로 설치한다.ngrok http 3000
명령어로 localhost 3000 포트에 접근할 수 있는 url을 얻을 수 있다!React 컴포넌트에 ref
prop을 넘겨서 그 내부에 있는 HTML 엘리먼트에 접근할 수 있는 함수
ref
, key
등은 prop으로 사용할 수 없는 예약어이기 때문에 useRef
로 생성한 ref
객체를 하위 컴포넌트에 ref
라는 이름으로 넘길 수 없다. (물론 ref1
처럼 다른 이름으로는 가능하지만, 혼란스럽다)
forwardRef
로 감싼 컴포넌트는 props 외에 두 번째 매개 변수를 갖게 되며, 이를 통해 외부에서 ref
를 prop으로 넘길 수 있다.
결과적으로 목표는 부모 컴포넌트에서 자식 컴포넌트의 특정 엘리먼트에 직접 접근하기 위해 사용한다!
React 개발자 도구에서 forwardRef
를 사용해도 컴포넌트 이름이 나오게 하는 몇 가지 방법
forwardRef
의 인자로 익명함수 대신 이름이 있는 함수를 넘긴다 forwardRef
의 return 값으로 기존 컴포넌트를 대체한다forwardRef
return 값의 displayName
속성에 컴포넌트 이름을 설정한다.일반적으로 forwardRef
는 주로 <Button/>
, <Input/>
처럼 HTML 엘리먼트 대신 사용되는 최말단 컴포넌트를 대상으로 사용한다. 그보다 상위 컴포넌트에는 사용이 권장되지 않는다! 컴포넌트간 결합도를 높이기 때문!