고차 컴포넌트(HOC, Higher Order Component)는 컴포넌트 로직을 재사용하기 위한 React의 고급 기술입니다. 고차 컴포넌트(HOC)는 React API의 일부가 아니며, React의 구성적 특성에서 나오는 패턴입니다. - 리액트 docs
컴포넌트를 가져와 새 컴포넌트를 반환하는 함수이다.
const EnhancedComponent = higherOrderComponent(WrappedComponent);
아래 예시는 프로젝트를 진행하면서 react-portal을 컴포넌트에 적용시키는 HOC를 작성한 예시 코드이다.
import React from 'react';
import { createPortal } from 'react-dom';
import { useDidMount } from '@hooks';
const withPortal = InputComponent => {
return function Component(props) {
const isRendered = useDidMount();
return isRendered ? (
<InputComponent {...props} />
) : (
createPortal(<InputComponent {...props} />, document.getElementById('root'))
);
};
};
export default withPortal;