커스텀 컴포넌트 API 레퍼런스
커스텀 컴 포넌트 개발에 사용할 수 있는 모든 API에 대한 자세한 설명입니다.
커스텀 컴포넌트 기본 타입
CustomComponentRenderProps
모든 커스텀 컴포넌트는 CustomComponentRenderProps
타입을 통해 프로퍼티를 받습니다:
import { CustomComponentRenderProps } from '@hops/custom-component';
interface OwnProps {
// 사용자 정의 프로퍼티
label: string;
placeholder: string;
}
function MyComponent(props: CustomComponentRenderProps<OwnProps>): ReactElement {
// 컴포넌트 구현
}
CustomComponentRenderProps
는 사용자가 정의한 프로퍼티를 포함하며, 아래의 추가적인 내부 프로퍼티도 포함할 수 있습니다:
name: string
: 컴포넌트의 이름isHidden: boolean | undefined
: 컴포넌트가 숨겨진 상태인지 여부
훅(Hooks)
useComponentState
컴포넌트의 상태를 관리하고 외부에서 접근 가능하게 만드는 훅입니다.
타입 시그니처:
function useComponentState<T>(name: string, initialValue: T): [T, (value: T) => void];
매개변수:
name
: 상태의 고유 식별자 (문자열)initialValue
: 초기값
반환값:
- 현재 상태값과 상태를 업데이트하는 함수가 포함된 배열
사용 예시:
const [value, setValue] = useComponentState<string>('inputValue', '');
const [numberValue, setNumberValue] = useComponentState<number>(10, '');
// 상태 업데이트
setValue((value) => '새로운 값');
setNumberValue((value) => value + 1);
useLogger
컴포넌트 내에서 로깅을 위한 훅입니다. 개발 및 디버깅에 유용합니다.
타입 시그니처:
function useLogger(): Logger;
interface Logger {
trace(message: string): void;
debug(message: string): void;
info(message: string): void;
warn(message: string): void;
error(message: string): void;
}
반환값:
- 로깅 메서드를 제공하는
Logger
객체
사용 예시:
const logger = useLogger();
// 로그 출력
logger.trace('상세한 로그 메시지');
logger.debug('디버그 메시지');
logger.info('정보 메시지');
logger.warn('경고 메시지');
logger.error('에러 메시지');
지원되는 라이브러리 및 버전
커스텀 컴포넌트에서는 다음과 같은 라이브러리들을 사용할 수 있습니다:
라이브러 리 | 버전 | 설명 |
---|---|---|
React | 18.2.0 | UI 컴포넌트 라이브러리 |
React DOM | 18.2.0 | React의 DOM 렌더링 라이브러리 |
@hops/design-system | - | Hops 디자인 시스템 컴포넌트 |
@hops/custom-component | - | 커스텀 컴포넌트 API |
note
다른 외부 라이브러리를 사용해야 할 경우 Hops팀(contact@hopsoffice.com)에 문의하세요.