Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

new_bird-hyun

React - 실시간 폼 유효성 피드백 + UX 개선 본문

코딩 공부

React - 실시간 폼 유효성 피드백 + UX 개선

새혀니 2025. 4. 20. 02:20

import { useForm } from 'react-hook-form';

export default function SignupForm() {
  const {
    register,
    handleSubmit,
    formState: { errors, touchedFields },
  } = useForm({ mode: 'onChange' });

  const onSubmit = (data) => console.log(data);

  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <div>
        <input
          {...register('email', {
            required: '이메일은 필수입니다',
            pattern: {
              value: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
              message: '이메일 형식이 올바르지 않습니다',
            },
          })}
          placeholder="이메일 입력"
          style={{
            borderColor: touchedFields.email && errors.email ? 'red' : '#ccc',
          }}
        />
        {errors.email && <small>{errors.email.message}</small>}
      </div>

      <button type="submit">가입하기</button>
    </form>
  );
}