-
영화목록 (netflix) 앱 번외편 - 사용자 정보 유효성 검증프로젝트/영화 목록 (Netflix) 앱 2021. 11. 23. 14:44728x90
import React, { useState } from 'react' import { useNavigate } from 'react-router-dom' import { Input, Button } from 'components' import './Register.css' const Register = () => { const [id, setId] = useState('') const [password, setPassword] = useState('') const navigate = useNavigate() const handleChange = (e) => { const { name, value } = e.target name === 'id'? setId(value) : setPassword(value) console.log(name, value) } const handleRegister = () => { // 사용자 정보가 있으면 로그인 페이지로 이동하기 if(JSON.parse(sessionStorage.getItem('user'))){ navigate('/login') // 사용자 정보가 없으면 사용자를 생성하고 홈페이지로 이동하기 }else { // 사용자 정보를 입력하지도 않고 그냥 버튼 누르면 곧바로 데이터 저장해버림 if(id !== '' && password !== ''){ sessionStorage.setItem('user', JSON.stringify({ id, password })) navigate('/home') }else{ alert('You need to give right user info.') } } } return ( <div className='register-container'> <Input name='id' type='text' placeholder='Type ID ...' value={id} onChange={handleChange}/><br/> <Input name='password' type='password' placeholder='Type PASSWORD ...' value={password} onChange={handleChange}/> <Button handleClick={handleRegister}>Register</Button> </div> ) } export default Register
Register.js 파일을 위와 같이 수정하자!
사용자가 사용자 정보 입력없이 Register 버튼을 클릭하면 경고창을 띄운다.
import React, { useReducer, useState } from 'react' import { useNavigate } from "react-router-dom" import { Input, Button } from 'components' import './Login.css' const Login = () => { const [id, setId] = useState('') const [password, setPassword] = useState('') const navigate = useNavigate() const handleChange = (e) => { const { name, value } = e.target name === 'id' ? setId(value) : setPassword(value) console.log(name, value) } const isNotValid = (user) => { console.log(user) return user.id === '' || user.password === '' } const handleLogin = () => { // 사용자 정보가 있으니까 불러오기 const user = JSON.parse(sessionStorage.getItem('user')) if(!isNotValid(user) && (id === user.id && password === user.password)){ navigate('/home') }else{ alert('You gaved wrong id or password !') } } return ( <div className='login-container'> <Input name='id' type='text' placeholder='Type ID ...' value={id} onChange={handleChange}/><br/> <Input name='password' type='password' placeholder='Type PASSWORD ...' value={password} onChange={handleChange}/><br/> <Button handleClick={handleLogin}>Login</Button> </div> ) } export default Login
Login.js 파일을 위와 같이 수정하자!
사용자가 사용자 정보 입력없이 Login 버튼을 클릭하면 경고창을 띄워준다.
728x90'프로젝트 > 영화 목록 (Netflix) 앱' 카테고리의 다른 글
영화목록 (Netflix) 앱 6 - 영화 추천 페이지 만들기 (0) 2021.11.24 영화목록 (Netflix) 앱 5 - 상세페이지 만들기 (0) 2021.11.24 영화목록 (Netflix) 앱 4 - 검색, 정렬 구현하기 (0) 2021.11.23 영화목록 (Netflix) 앱 3 - 스타일링하기 (0) 2021.11.23 영화목록 (netflix) 앱 2 - 라우터 구현하기 (0) 2021.11.22