Skip to content

React Form Mozard리액트를 위한 모나딕 폼 합성

JavaScript Generator를 사용해 복잡한 폼 플로우를 선언적으로 구성하세요

이게 뭔가요?

다단계 폼 만들 때 이런 고민 해본 적 있죠?

  • "2단계에서 입력한 값에 따라 3단계가 달라져야 하는데..."
  • "뒤로 가기 누르면 이전에 입력한 값들이 다 사라져..."
  • "조건부 분기가 복잡해서 상태 관리가 지옥..."

Mozard는 JavaScript Generator를 써서 이런 문제들을 해결합니다. 그냥 함수 쓰듯이 자연스럽게 쓰면 됨:

typescript
*do(step) {
  const profile = yield* step("profile", ProfileForm, {});
  
  // 미성년자면 보호자 동의 받기
  if (profile.age < 20) {
    const consent = yield* step("parentConsent", ParentConsentForm, {});
    return { profile, consent };
  }
  
  // 성인이면 바로 환경설정
  const prefs = yield* step("preferences", PreferencesForm, {});
  return { profile, prefs };
}

네, 이게 다입니다. if문 쓰듯이 쓰면 되고, 뒤로 가기도 알아서 되고, 타입도 안전함.