anott
기록
anott
  • 분류 전체보기
    • 오라클
    • SQL
    • 알고리즘
      • 백준저지
      • 프로그래머스
      • SWEA
    • 개발 관련
    • 프론트엔드
      • TypeScript, Next.js
      • React 공식문서 읽기
hELLO · Designed By 정상우.
anott

기록

프론트엔드/React 공식문서 읽기

Forwarding Refs (Ref 전달하기)

2022. 6. 27. 04:05
https://ko.reactjs.org/docs/forwarding-refs.html를 읽고 정리한 글입니다

 

  • 컴포넌트를 통해 자식 중 하나에 ref를 자동으로 전달하는 기법 ⇒ 재사용 가능한 컴포넌트 라이브러리 등에 효율적
  • forwardRef를 사용할 때 ⇒ 변경사항으로 간주 & 라이브러리의 새로운 중요 버전 릴리즈
  • 고차원 컴포넌트(HOC, Higher Order Component)에 유리할 수 있다
    • React.forwardRef API를 사용하여 refs 명시적으로 전달 가능
function logProps(Component) {
  class LogProps extends React.Component {
    componentDidUpdate(prevProps) {
      console.log('old props:', prevProps);
      console.log('new props:', this.props);
    }

    render() {
      const {forwardedRef, ...rest} = this.props;

      // 사용자 정의 prop "forwardedRef"를 ref로 할당합니다.
      return <Component ref={forwardedRef} {...rest} />;
    }
  }

  // React.forwardRef에서 제공하는 두 번째 파라미터 "ref"에 주의해주세요.
  // 가령 "forwardedRef"같은 일반 prop으로 LogProps에 전달할 수 있습니다.
  // 그 다음 Component에 연결할 수 있습니다.
  return React.forwardRef((props, ref) => {
    return <LogProps {...props} forwardedRef={ref} />;
  });
}
  • React.forwardRef : 렌더링 함수를 받는다 (displayName 속성 지정 가능)

 

 

저작자표시 비영리

'프론트엔드 > React 공식문서 읽기' 카테고리의 다른 글

고차 컴포넌트(HOC, Higher Order Component)  (0) 2022.07.03
Fragments  (0) 2022.06.29
에러 경계(Error Boundaries)  (0) 2022.06.17
Context  (0) 2022.06.17
코드 분할  (0) 2022.06.16
    '프론트엔드/React 공식문서 읽기' 카테고리의 다른 글
    • 고차 컴포넌트(HOC, Higher Order Component)
    • Fragments
    • 에러 경계(Error Boundaries)
    • Context
    anott
    anott

    티스토리툴바