티스토리 뷰

TIL

Input Custom Hook 만들어보기

윤미주 2024. 2. 20. 09:16

1. 파일과 폴더 만들기

🔥clean code를 합시다 🔥

 

hooks📁

ㄴuseInput.js 

 

custom hook을 만들 때 파일은 js 파일로 만들어주어야 한다.

 

 

2. useInput.js 코드 작성하기

import { useState } from "react";

export default function useInput() {
  const [inputValue, setInputValue] = useState("");

  const handInput = (e) => {
    setInputValue(e.target.value);
  };

  const InitialValue = () => {
    setInputValue("");
  };

  return [inputValue, handInput, InitialValue];
}

 

 

 

3. useInput hook 사용하기

  const [name, nameHandler, nameInitialValue] = useInput("");
  const [passsWord, passWordHandler, passsWordInitialValue] = useInput("");
  const [nickName, nickNameHandler, nickNameInitialValue] = useInput("");

  const handleLoginInfoSubit = (e) => {
    e.preventDefault();

    if (!name || !passsWord) {
      return;
    }

    onAddLogin({
      id: "",
      name,
      passsWord,
      nickName,
    });

    nameInitialValue();
    passsWordInitialValue();
    nickNameInitialValue();
  };

  return (
    <LoginBox>
      <LoginForm onChange={handleLoginInfoSubit}>
        <Title>로그인</Title>
        <InputBoxs>
          <Inputs
            type="text"
            value={name}
            onChange={nameHandler}
            placeholder="아이디를 입력해주세요"
            maxLength={10}
          />
          <Inputs
            type="password"
            value={passsWord}
            onChange={passWordHandler}
            placeholder="비밀번호를 입력해주세요."
            maxLength={15}
          />
        </InputBoxs>
        <ButtonBoxs>
          <LoginButton>로그인</LoginButton>
          <SignUpLink to="/signup">아직 회원이 아니신가요? </SignUpLink>
        </ButtonBoxs>
      </LoginForm>
    </LoginBox>
  );
}

'TIL' 카테고리의 다른 글

tanstack-query ~ 리펙토링까지  (0) 2024.02.27
Outsourcing-Project 시작! (Figma 활용)  (0) 2024.02.23
.env.local 환경변수 사용하기  (0) 2024.02.20
AXIOS 사용해보기  (2) 2024.02.17
useNavigate & <Link />  (1) 2024.02.16