⬆️⬆️ 위에는 제가 구현한 페이지 🥰
이제는 Html, Css, JavaScript로 정리했던 코드를 React로 바꿀 때 입니다 !!
우선 로그인에 필요한 기능을 하나씩 구현해 보겠습니댜 👩🏻💻 👩🏻💻
우선 로그인 버튼에 onClick 속성을 넣어줍니다.
onClick={this.checkValidation}
(저는 함수이름을 checkValidation 이라 하겠습니다.)
그리고 적어놓은 class
와 render
사이에 함수를 적습니다 !
checkValidation = () => {
const { id, pw } = this.state;
const checkId = id.includes("@");
const checkPw = pw.length >= 4;
if (checkId && checkPw) {
alert("로그인 성공");
this.props.history.push("/main페이지파일이름");
}
if (!checkId) {
alert("아이디에는 @가 포함되어야 합니다.");
}
if (!checkPw) {
alert("비밀번호는 4자리 이상이어야 합니다.");
}
};
❗️여기서 구조 분해 할당하면 좋은점 :
this.state
를 쓰지 않아도 된다 (ㄱㅇㄷ)
password input
태그 아래에 onClick을{this.showPassword} 로 적어줍니다.<span className="showAndHide" onClick={this.showPassword}>
{hiddenPw ? "Show" : "Hide"}
</span>
render()
위에 hiddenPw를 구조분해 할당하고 히든패스워드와 그렇지 않은것을 같다고 설정해두면 삼항연산자에 썼던 조건이 true or false로 값이 바뀌면서 토글 버튼 상태로 될 것 입니다.showPassword = () => {
const { hiddenPw } = this.state;
this.setState({ hiddenPw: !hiddenPw });
};
로그인 버튼에 삼항연산자로 activateButton이 활성화되면 login-activate
가 되고 그렇지 않다면 login-deactive
가 되게 할 것 입니다.
className={activateButton ? "login-activate" : "login-deactivate"}
그러기 위해서는 render()와 return()사이에
let activateButton = (id.length && pw.length) >= 1;
activateButton에 대해 선언을 해줘야합니다!
참 쉽쥬 ❓❓
로그인 버튼에 onKeyPress로 enter를 누르자마자 일어나는 이벤트를 넣어 줄 겁니다. 제가 설정한 이름은 handleKeyPress로 !
onKeyPress={this.handleKeyPress}
그러면 함수에 대해 적어줘야겠쥬❓
handleKeyPress = (e) => {
if (e.key === "Enter") {
this.checkValidation();
}
};
여기서 checkValidation은 우리가 처음에 적어줬던 함수 조건을 이어서 연결한겁니다 !!
이정도면 로그인에서 구현할 수 있는 기능은 충분(❓)