CreateForm
CreateForm<TValues>는 모든 어댑터 뒤에 있는 코어 클래스입니다. 생성자에는 CreateFormOptions를 전달합니다. 옵션에는 defaultValues, 선택적인 폼 전체 schema, 선택적인 schemaOptions, 선택적인 validateOn이 있습니다. 인스턴스는 Form<TValues>를 구현하므로 어댑터와 테스트가 하나의 안정된 계약에 의존할 수 있습니다.
const form = new CreateForm({
defaultValues: { email: '', profile: { name: '' } },
schema: profileSchema,
schemaOptions: { libraryOptions: { abortEarly: false } },
validateOn: ['change', 'blur', 'submit'],
});
const unsubscribe = form.subscribe(() => {
console.log(form.getState().submitCount);
});불변 스냅샷이 필요하면 getState()를 쓰고, 프레임워크나 외부 관찰자가 변경 알림을 받아야 하면 subscribe()를 사용합니다. 필드 단위 작업에는 getValue, getValues, setValue, getFieldState를 우선 사용하세요. focus(path)는 해당 필드의 isFocused를 설정합니다. blur(path)는 이를 해제하고 필드를 touched 처리하며 설정에 따라 blur 검증을 실행합니다.
실무 사용 팁
추상화를 만들 때는 이 레퍼런스를 가까이 두세요. 레퍼런스는 패키지가 무엇을 노출하는지 설명하고, 가이드는 그 조각들을 조합하는 한 가지 방식을 보여줍니다. 어떤 도우미가 FieldPathInput, 검증 시점, 배열 재배치를 감춘다면 그 도우미도 같은 정밀도로 문서화하세요. 그래야 나중에 문자열, 튜플, 안정적인 키 중 무엇을 기대하는지 유지보수자가 알 수 있습니다.