convex-component-authoring은(는) 무엇을 하나요?
자체 포함된 Convex 컴포넌트를 적절한 격리, 내보내기 및 의존성 관리와 함께 생성, 구조화 및 게시하는 방법입니다.
개요
Convex 컴포넌트는 여러 프로젝트에서 재사용할 수 있는 캡슐화된 기능 단위입니다. 이 가이드는 다른 Convex 앱과 함께 설치, 구성 및 사용할 수 있는 컴포넌트를 작성하는 모범 사례를 다룹니다.
핵심 원칙
- 격리: 컴포넌트는 외부 Convex 함수(쿼리, 뮤테이션, 액션)에 의존하지 않고 스스로 완결되어야 합니다. 컴포넌트는 자체 스키마, 함수 및 상태를 정의합니다.
- 내보내기: 컴포넌트는 소비자가 사용할 수 있는 명확한 공개 API(함수, 타입)를 노출해야 합니다. 모든 내부 세부 사항은 비공개로 유지합니다.
- 의존성 관리: 컴포넌트는
dependencies대신peerDependencies에convex를 선언해야 하며, 프로젝트 전체에서 단일 버전의 Convex가 사용되도록 보장합니다. Convex 외부의 다른 종속성(예: 라이브러리)은 일반dependencies에 포함될 수 있습니다.
파일 구조
권장되는 컴포넌트 디렉터리 구조는 다음과 같습니다:
my-component/
├── src/
│ ├── index.ts # 공개 내보내기
│ ├── schema.ts # 선택 사항: Convex 스키마 정의
│ ├── queries.ts # 선택 사항: 공개 쿼리
│ └── mutations.ts # 선택 사항: 공개 뮤테이션
├── package.json
├── README.md
└── tsconfig.json
src/index.ts는 사용자에게 내보낼 모든 항목을 다시 내보냅니다. 여기에는 함수, 타입 및 구성 옵션이 포함됩니다.schema.ts는 컴포넌트의 데이터 모델을 정의합니다(Convex 스키마를 사용하는 경우).- 컴포넌트는 비공개 내부 도우미를 위해
src/_internal/과 같은 폴더를 가질 수 있습니다.