React - React-Hook-Form

tyghu77·2023년 4월 25일
0

npm install react-hook-form

실제 앱을 개발할때, 수많은 form을 사용하게 된다. 그 form에 해당하는 state를 작성하려면 매우 귀찮은 일이 된다. 거기서 form validation까지 하게 된다면 굉장히 번거로운 일이 될 수있다.

const [toDo, setToDo] = useState("");
const [toDoError, setToDoError] = useState("");

const onChange = (event: React.FormEvent<HTMLInputElement>) => {
  const {
    currentTarget: { value },
  } = event;
  setToDoError("");
  setToDo(value);
};
const onSubmit = (event: React.FormEvent<HTMLFormElement>) => {
  event.preventDefault();
  if (toDo.length < 10) {
    return setToDoError("ToDo should be longer");
  }
  console.log("submit");
};

return (
  <div>
  <form onSubmit={onSubmit}>
  <input onChange={onChange} value={toDo} placeholder="Write a to do" />
    <button>Add</button>
{toDoError !== "" ? toDoError : null}
</form>
</div>
  );

react-hook-form에서 제공하는 다양한 함수로 위의 코드를 간결하게 바꿀 수 있다.

register는 onChange, onBlur, onFocus 등에 대한 정보를 담고있는 함수이다.
watch는 form의 입력값들의 변화를 관찰할 수 있게 해주는 함수이다.
handleSubmit는 인자를 두개 받는데, 하나는 데이터가 유효할때, 다른하나는 데이터가 유효하지 않을 때 호출되는 함수이다.
formState는 말 그대로 form의 state를 보여주는데 그중에 error객체가 있다. error객체에서는 에러를 보여주고 그에 따른 메시지도 보여준다.
setError는 코드에서 에러를 발생시킬 때 매우 유용하다.
setValue는 form의 값을 지정해줄 수 있다.

profile
배운것을 기록하자

0개의 댓글