Frontory

코드 편집 · 실습 · 필기 열기 →

React · 07 제어 입력과 폼 검증

시리즈 목차 · 전체 기술 지도

단계: 컴포넌트와 상태 계산 · 편집 가능한 예제 · 저장 ID: react-step-07

목표와 학습 후 역량

선수 지식

7단위는 6단위 결과물과 실험 기록을 이어 사용합니다.

핵심 개념과 설명

제어 입력

value와 onChange를 함께 제공하면 React 상태가 입력 원본이 됩니다. 초기값을 빈 문자열로 두어 제어 여부가 바뀌지 않게 합니다.

폼 제출

form의 submit 이벤트는 Enter와 버튼 제출을 함께 처리합니다. 검증 실패는 입력을 지우지 않고 사용자가 고칠 위치를 알려야 합니다.

실습 준비

예제 화면의 실행 범위 안내를 먼저 확인하세요. 다음은 과제를 별도 프로젝트로 확장할 때의 준비 환경입니다. 별도 React Vite 프로젝트의 JSX 실습입니다. Node와 패키지 버전·lockfile을 기록하고 프로젝트 개발 서버에서 실행하세요. 내장 편집기는 범용 JSX 컴파일러가 아닙니다.

연결된 예제는 출발점입니다. 아래 과제 전체가 완성된 코드는 아니며, 예제의 지원 범위를 넘는 작업은 별도 프로젝트에서 수행하세요.

실습 과제

  1. src/AddCardForm.jsx에 label·input·submit 버튼을 작성하세요.
  2. 공백을 제거한 제목이 비면 오류를 표시하고 유효하면 새 id로 카드를 추가하세요.
  3. 공백 입력과 한글 제목을 Enter로 제출해 목록 개수를 기록하세요.

관찰할 변수

변수기준 조건바꿀 조건예상할 변화·검증 가설
제목공백만새 카드공백은 거절하고 유효한 제목은 한 번 추가한다.

표의 예상은 측정 결과가 아닙니다. 한 번에 한 조건만 바꾸고 실제 결과가 다르면 원인을 기록하세요.

완료 조건

자가 점검

  1. onClick만 처리하면 키보드 제출에 어떤 빈틈이 있나요?
  2. value와 defaultValue의 소유권은 어떻게 다른가요?

공식 참고

연결된 예제와 실행 범위

예제 원본 · 실행 환경과 제한

실제 React API 실험입니다. JSX 대신 createElement를 사용합니다.

원본 코드·기록은 자동으로 덮어쓰지 않습니다. 기존 예제를 초기화할 때도 필기는 유지됩니다.

다음 학습

이전: 목록의 key와 정체성 · 다음: 상태 끌어올리기

실험 기록 — 직접 작성

목표

핵심 개념

바꾼 변수와 예상

실제 결과

배운 점

남은 질문

코드 편집 · 실습 · 필기 열기 →