TIL#4์์, Local Storage์ ๋ํด ๊ณต๋ถํ๋ฉฐ Local Storage์ currentUser ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ , ์๋ค๋ฉด Hello (currentUser)!
๊ฐ ์ถ๋ ฅ๋๋๋ก ํ๋ ๊ฒ์ ํ์ธํ์๋ค. ๊ทธ ๊ณผ์ ์์ ์ถ๋ ฅ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๊ฐ๋ฐ์ ๋๊ตฌ์ Local Storage๋ฅผ ํธ์งํ์๋๋ฐ, ์ค๋์ form์ submitํ์ฌ ์ ๋ณด๋ฅผ Local Storage๋ก ๋ณด๋ด๋๋ก ํ๋ ์ฐ์ต์ ํด๋ณด์.
function loadName() {
const currentUser = localStorage.getItem(USER_LS)
if(currentUser === null){
askForName();
} else {
paintGreeting(currentUser);
}
}
#4์ ์ฝ๋์์๋ ๊ฐ๋ฐ์ ๋๊ตฌ๋ก currentUser๋ฅผ ์ง์ ํด์ฃผ์๊ณ , else์ ํด๋นํ๋ ๋ถ๋ถ์ด ์ ์ ์๋ ํ๋ ๊ฒ์ ํ์ธํ์๊ณ , ์ค๋์ currentUser === null์ธ ์ํฉ์์ askForName()์ด๋ผ๋ ํจ์๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉ์์ ์ด๋ฆ์ ํ์ด์ง๋ฅผ ํตํด ์ ๋ ฅ๋ฐ์ ์ ์ฅํ๋๋ก ํ๋ค.
function askForName() {
form.classList.add(SHOWING_CN);
form.addEventListener("submit",handleSubmit);
}
currentUser === null
์ธ ๊ฒฝ์ฐ ์๋ํ๋ ํจ์๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ผ๋จ, form์ classList์ "showing"
์ ์ถ๊ฐํด์ค์ผ๋ก์ display: none;
์ display: block
์ผ๋ก ๋ฐ๊พธ์ด ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋๋ก ํ์๊ณ , eventListener
๋ฅผ ํตํด "submit"
์ด ๋ฐ์ํ๋ฉด handleSubmit
์ด ๋์ํ๋๋ก ํ์๋ค.
๊ทธ๋ ๋ค๋ฉด "submit"
์ด ๋ฐ์ํ๋ฉด ์๋ํ๋ handleSubmit
์์๋ ์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ด์ผ ํ ๊น?
function handleSubmit(event) {
event.preventDefault();
const currentValue = input.value;
paintGreeting(currentValue);
}
handelSubmit
์ ์ฒซ ์ค์๋ event.preventDefault();
๋ผ๋ ์์ํ ์ฝ๋๊ฐ ์๋๋ฐ, ์ด ์ฝ๋๊ฐ ์ฌ์ฉ๋ ์ด์ ๋ฅผ ์ค๋ช
ํ๊ธฐ ์ํด์๋ submit
์ด๋ผ๋ event์ ๋ํ ์ค๋ช
์ด ํ์ํ๋ค. MDN์ submit ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ฉด, form
๋ด๋ถ์์ enter
๋ฅผ ์
๋ ฅํ ๊ฒฝ์ฐ ๋ฐ์๋๋ค๊ณ ํ๋ค. ๋ํ ์ค์ํ ์ ์, Cancelable ์์ฑ์ด yes๋ผ๋ ์ ์ด๋ค.
w3school์ preventDefault() ๋ฌธ์๋ฅผ ๋ณด๋ฉด,
The preventDefault() method cancels the event if it is cancelable, meaning that the default action that belongs to the event will not occur.
์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์กด์ฌํ๋๋ฐ, ์ด๊ฒ์ ๋ํ ์์ฑ์ด ๋ฐ๋ก Cancelable
์ด๊ณ , submit
event๊ฐ ๋ฐ์ํ๋ฉด form
๋ด๋ถ์ item์ ๋ค๋ฅธ ํ์ด์ง๋ก ์ ์กํ๊ณ , ํ์ด์ง๋ฅผ ์๋ก ๋ก๋ํ๋๋ฐ, ๊ทธ ๊ณผ์ ์ ์ค๋จํ๋๋ก preventDefault()
ํจ์๋ฅผ ์ฌ์ฉํ์๋ค.
๋๋ฒ์งธ ์ค์ ์ด์ ๊ณผ ๊ฐ์ด form
ํ๊ทธ๊ฐ ๋ณด์ด๋๋ก className.add()
์ ์ฌ์ฉํด์ฃผ์๊ณ , ์ธ๋ฒ์งธ ์ค์์ ์ฌ์ฉ์๊ฐ input
์ ์
๋ ฅํ ๋ด์ฉ์ currentValue
๋ก ์ ์ฅํ๋๋ก ํ์๊ณ , ์ด currentValue
๋ฅผ ์ธ์๋ก paintgreeting()
ํจ์๊ฐ ์๋ํ๋๋ก ํจ์๋ฅผ ๊ตฌ์ฑํ์๋ค.
์์ ํจ์๋ฅผ ์ ์ฅํ์ ์คํํ๋ฉด, ์ ์์ ์ผ๋ก ์ฌ์ฉ์์ ์
๋ ฅ์ ๋ฐ์ ํด๋น ์ด๋ฆ์ ์ธ์ฌ๋ฅผ ํ๋ ๊ฒ๊น์ง ์คํ์ด ๋์ง๋ง, ์๋ก๊ณ ์นจ์ ํ๋ฉด ๋ค์ ์ฌ์ฉ์์ ์ด๋ฆ์ ๋ฌผ์ด๋ณด๋ ์ํฉ์ด ๋ฐ์ํ๋ค. ์ด์ ๋ Local Storage์ currentValue
๋ฅผ currentUser
๋ก์ ์ ์ฅํ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ธ๋ฐ, ์ด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.
๋จผ์ saveName(currentValue);
๋ฅผ handleSubmit()
ํจ์์ ๋ง์ง๋ง ์ค์ ์ถ๊ฐํ๊ณ , ๋ค์๊ณผ ๊ฐ์ด saveName()
ํจ์๋ฅผ ์ ์ธํด์ฃผ๋ฉด ๋๋ค.
function saveName(text) {
localStorage.setItem(USER_LS, text);
}
์ด ๊ณผ์ ๊น์ง ๋ง์น ํ, ์คํํด๋ณด๋ฉด,,,
Local Stroage์ currentUser๋ก ๋์ ์
๋ ฅ์ด ์ ์ฅ๋๊ณ ,
์๋ก๊ณ ์นจ ํ์๋ ์ถ๋ ฅ๋จ์ ํ์ธํ ์ ์๋ค.