일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- recoil
- 반공변성
- 이분 검색
- async/await
- CI/CD
- 투포인터
- dfs
- ESlint
- React
- webpack
- map
- 타입 좁히기
- Cypress
- RTK Query
- Jest
- 태그된 유니온
- Promise
- 공변성
- tailwind
- 무한 스크롤
- useAppDispatch
- autosize
- SSR
- 결정 알고리즘
- app router
- CORS
- 리터럴 타입
- 호이스팅
- TS
- 인터섹션
Archives
- Today
- Total
짧은코딩
js) LOGIN 본문
반응형
콘솔에
localStorage.setItem("username", "nico")
입력하면 어플리케이션에
이렇게 저장된다.
localStorage.getItem("username")
localStorage.removeItem("username")
이런 명령어로 가져올 수도 있고 삭제할 수도 있다.
const loginForm = document.querySelector("#login-form");
const loginInput = document.querySelector("#login-form input");
const greeting = document.querySelector("#greeting");
const HIDDEN_CLASSNAME = "hidden"
function onLoginSumbit(event) {
event.preventDefault();
loginForm.classList.add(HIDDEN_CLASSNAME);
const username = loginInput.value;
localStorage.setItem("username", username) //앞에껀 key 값
greeting.innerText=`Hello ${username}`;
greeting.classList.remove(HIDDEN_CLASSNAME)
}
loginForm.addEventListener("submit", onLoginSumbit);
이런 코드로 바꿔주면 입력했을 때 로컬 스토리지에 값이 저장된다.
이 값은 새로고침해도 어플리케이션에 계속 남아있다.
로컬 스토리지에 값이 있으면 h1 값을 보여주고 값이 없으면 form을 보여주는 코드
const loginForm = document.querySelector("#login-form");
const loginInput = document.querySelector("#login-form input");
const greeting = document.querySelector("#greeting");
const HIDDEN_CLASSNAME = "hidden"
const USERNAME_KEY = "username";
function onLoginSumbit(event) {
event.preventDefault();
loginForm.classList.add(HIDDEN_CLASSNAME);
const username = loginInput.value;
localStorage.setItem(USERNAME_KEY, username) //앞에껀 key 값
paintGreeting(username)
}
function paintGreeting(username){
greeting.innerText = `Hello ${username}`;
greeting.classList.remove(HIDDEN_CLASSNAME);
}
const savedUsername = localStorage.getItem(USERNAME_KEY);
if (savedUsername === null){
//show the form
loginForm.classList.remove(HIDDEN_CLASSNAME);
loginForm.addEventListener("submit", onLoginSumbit);
} else{
//show the greetings
paintGreeting(savedUsername)
}
로컬 스토리에 없는 키 값을 호출하면 null이 출력된다. 그래서 이를 통해 if문으로 체크를 한다. 로컬 스토리지가 null이면 입력 받는 창을 띄워주고 null이 아니면 Hello 이름을 띄워준다. 그리고 겹치는 부분은 paintGreeting 함수로 만들어줬다.
반응형
'노마드 코더 > 바닐라 JS로 크롬 앱 만들기' 카테고리의 다른 글
js) QUOTES AND BACKGROUND (1) | 2022.04.29 |
---|---|
js) CLOCK (1) | 2022.04.28 |
js) 이벤트 및 preventDefault() 함수 사용 (0) | 2022.04.08 |
js) 이벤트 및 if문 활용 (0) | 2022.04.06 |
js) 여러 함수 및 dir, document (0) | 2022.04.05 |
Comments