React

[React] Login 페이지 - password 보기 기능

ahleum 2022. 6. 29. 15:43

React로 로그인 기능을 만들면서

패스워드를 입력하고 보여주길 원할 때

버튼을 누르면 패스워드가 보이고 다시 누르면 보이지 않게 하는 기능을 만들어보자

 

// useState로 type과 visible로 나눠 state를 관리해준다

const [pwType, setpwType] = useState({
    type: "password",
    visible: false,
  });

 

위에서 state에서 type은 password로 되어 있기 때문에 input에서의 값들은 보이지 않을 것이다.

// input 의 타입을 바꿔준다
<input type={pwType.type} />

// 이 태그를 클릭할 때 비밀번호가 보여지고 숨겨지는 기능이 실행된다.
<span onClick={handlePasswordType}>
  {pwType.visible ? "비밀번호 숨기기" : "비밀번호 보기"}
</span>

 

위의 span 태그를 클릭하면 아래의 이벤트가 실행되게 한다.

만약 pwType.visible 이 현재 false라면 type은 password 상태이고 비밀번호가 보이지 않는 상태이기 때문에

 

type을 text로 바꿔주면 password input은 보일 것이고

visible을 true로 바꿔주면서 span에서 출력 값을 바꿔주도록 한다.

const handlePasswordType = (e) => {
    setpwType(() => {
    // 만약 현재 pwType.visible이 false 라면
      if (!pwType.visible) {
        return { type: "text", visible: true };

	//현재 pwType.visible이 true 라면
      } else {
        return { type: "password", visible: false };
      }
    });
  };