Project | React - Webucks Clone Coding [Mission 2]

Wook·2021년 12월 5일
0

[Mission 2] Login | 사용자 입력 데이터 저장


다음의 순서에 맞게 코드를 작성하여 ID, PW <input>에 입력된 값을 state 에 저장해주세요.

  1. ID <input> 에서 onChange event 발생
  2. event 발생 시 handleIdInput 함수 실행
  3. handleIdInput 는 이벤트를 인자로 받음
  4. event가 일어난 요소에 담긴 value 값 (event.target.value)을 state에 저장
  5. 위의 과정을 PW <input> 에도 동일하게 적용

React LibraryuseState의 장점을 처음으로 활용하는 프로젝트였다.State의 장점에 대해 더욱 돌아볼 수 있는 과정이었다.

📲 구현 코드

import React from 'react';
import { Link } from 'react-router-dom';
import './Login.scss';
import { useNavigate } from 'react-router-dom';
import { useState } from 'react';

function Login() {
  const navigate = useNavigate();  // 버튼을 통한 링크 이동을 위한 useNavigate()
  const goToList = () => {
    navigate("/list");
  };

  const [saveID, saveIDchange] = useState(''); // ID 입력을 위한 State
  const [savePW, savePWchange] = useState(''); // PW 입력을 위한 State

  return (
    <section>
      <h1>WeBucks</h1>
      <div className="input">
        
        <input type="text" placeholder="전화번호, 사용자 이름 또는 이메일" class="userid"
          onChange={(e) => saveIDchange(e.target.value)} />
        // input에 onChange event 발생시 => saveID에 해당 value 반환(State 속성 이용)
      </div>
      
      <div className="input">
        <input type="password" placeholder="비밀번호" className="pw"
          onChange={(e) => savePWchange(e.target.value)} />
        // input에 onChange event 발생시 => savePW에 해당 value 반환(State 속성 이용)
        <button className="hide">show&hide</button>
      </div>

      <div className="btn">
        <button className="but" disabled={
          saveID.includes('@') && savePW.length >= 5 ?
            false : true
        }
          onClick={goToList}>로그인</button>
      </div>

      <div className="forget">
        <Link to='Detail'>비밀번호를 잊으셨나요?</Link>
      </div>
    </section>
  );
}

export default Login

🐳 느낀 점

논리적 접근은 HTMLJavaScript와 비슷하지만, React를 활용한 프로젝트이기에 조금씩 다른 문법에 익숙해지는 과정이었다고 생각한다. state의 가벼운 활용법에 대해 생각해보는 단계였고, 그 기능을 어떨 때 쓰면 좋을지 좀 더 생각해볼 수 있었다. 기초가 단단해야 나중에 잘 버틸수 있다고 생각한다. ComponentState에 대해 항상 진중하게 생각하자.

profile
지속적으로 성장하고 발전하는 진취적인 태도를 가진 개발자의 삶을 추구합니다.

0개의 댓글