ETC

[바닐라 JS로 크롬 앱 만들기] LOGIN

alsruds 2023. 5. 2. 03:42

미루고 미뤄왔던 모멘텀 ..

죽지 않고 돌아와 버렸다 !

 


 

Index.html

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="style.css" />
        <title>Momentum LOGIN</title>
    </head>

    <body>
        <!-- hidden : 요소 숨기기 (존재하지만 숨겨져 있음) -->
        <form id="login-form" class="hidden">
            <!-- required : 필수 작성 요소 -->
            <input required maxlength="15" type="text" placeholder="What is your name?"/>
            <input type="submit" value="Log In"/>
        </form> <!-- form 은 submit 을 기다리는 중 -->
        <h1 id="greeting" class="hidden"></h1>
        <script src="app.js"></script>
    </body>
</html>

 

 

● App.js

const loginInput = document.querySelector("#login-form input");
const loginForm = document.querySelector("#login-form")
const greeting = document.querySelector("#greeting");
const HIDDEN_CLASSNAME = "hidden";
const USERNAME_KEY = "username";

# Login Submit Button 클릭 시 작동 함수
function onLoginSubmit(event) {	
    event.preventDefault();			# 브라우저의 기본 동작 막기
    loginForm.classList.add(HIDDEN_CLASSNAME);	# form 에 hidden 클래스 추가 : 화면에 안보여짐
    const username = loginInput.value;		# input 값

    # localStorage 사용
    localStorage.setItem(USERNAME_KEY, username);	# key: USERNAME_KEY, value: username
    paintGreetings(username);
}

function paintGreetings(username){
    greeting.innerText = `Hello ${username}`;
    greeting.classList.remove(HIDDEN_CLASSNAME);	# hidden 클래스 삭제 : 화면에 보여짐
}

# localStorage 이용한 조건문
const savedUsername = localStorage.getItem(USERNAME_KEY);	# 저장된 username이 있는지 확인

if (savedUsername === null){
    // show the form
    loginForm.classList.remove(HIDDEN_CLASSNAME);
    loginForm.addEventListener("submit", onLoginSubmit);
} else {
    // show the greeting
    paintGreetings(savedUsername);
}

》  localStorage : 브라우저에 정보 저장

          > 저장 : localStorage.setItem("key", "value");

          > 조회 : localStorage.getItem("key");

          > 삭제 : localStorage.removeItem("key");

 

 

Style.css

.hidden {
    display: none;
}

 

 

momentum login