필드 모델링
각 필드가 value만 필요한지 touched, dirty, error까지 필요한지 정한다.
모든 필드에 같은 무게의 상태가 필요하지는 않다입력 필드가 많다고 항상 복잡한 폼은 아니다. 어떤 필드가 다른 필드의 유효성을 바꾸는지, reset이 무엇을 되돌리는지, submit 중 pending과 server error를 어떻게 유지하는지가 폼 상태 설계의 핵심이다.
각 필드가 value만 필요한지 touched, dirty, error까지 필요한지 정한다.
모든 필드에 같은 무게의 상태가 필요하지는 않다비밀번호 확인, 국가별 주소, 결제수단별 입력처럼 서로 영향을 주는 필드를 표시한다.
교차 검증은 필드 단독 검증과 다르다단순 폼은 useState, 이벤트가 많고 전이가 복잡하면 reducer로 모은다.
이벤트 이름이 명확하면 reducer가 읽기 쉽다client invalid, pending, server rejected, success를 한 상태기계처럼 다룬다.
중복 제출과 서버 오류를 놓치지 않는다검증, reset, submit 로직이 반복되면 custom hook이나 form library로 분리한다.
라이브러리는 상태 모델을 대신 정해준다