Trip to Front-end

Momentum 프론트를 만들었는데 왜 까먹는가?

Kestrel 2023. 3. 30. 22:30

예전에 만들었는데 역시나.... 왜이리 쉽게 잊혀지는 걸까?

내 약점은 조금만 브라우저 동작에 대한 내용이 나오면 잊는다는 것이다.

브라우저에는 stroage가 있는데 입력값을 보관해준다. 해당 관련해서 코드를 짰는데 너무나 복잡하다.

일단 자주 잊는 부분을 기록해두고자한다.

 

const nameForm = document.querySelector("#nameForm")
const nameInput = document.querySelector("#nameinput")
const mainBox = document.querySelector("#mainBox")
const clock = document.querySelector("#clock")
const today = new Date();
const hour = String(today.getHours()).padStart(2,0);
const minute = String(today.getMinutes()).padStart(2,0);
const second = String(today.getSeconds()).padStart(2,0);
clock.innerText = `${hour}:${minute}:${second}`


// 3. 시간에 따라서 인사말 달리하기 


// 1. 먼저 이름 벨류 값을 받기
function hello() {
  event.preventDefault();
  const username = nameInput.value
  // 내가 못했던 것!
  localStorage.setItem("username", username)
  // 2. 기존 인풋을 없애고 이름을 화면에 표출
  nameForm.classList.add("hide")
  const nameBox = document.createElement("h2");
  mainBox.appendChild(nameBox);
  // 3번 세부 조건 설정
  if (hour >= 17 || hour < 4) {
   nameBox.innerText = `Good Evening, ${username}`;
  }else if (hour >= 4 && hour < 12) {
    nameBox.innerText = `Good Morning, ${username}`;
   } else {
    nameBox.innerText = `Good Afternooon, ${username}`;
   }
  }

// 4. 시계 만들기

function whatTime() {
  const clock = document.querySelector("#clock")
  const today = new Date();
  const hour = String(today.getHours()).padStart(2,0);
  const minute = String(today.getMinutes()).padStart(2,0);
  const second = String(today.getSeconds()).padStart(2,0);
  clock.innerText = `${hour}:${minute}:${second}`
}

setInterval(whatTime, 1000)

//  5. 내가 잘 못했던 부분 이름 기억하기 브라우저 기본 기능으로 local Storage
// localStorage.setItem!!!

const savedUsername = localStorage.getItem("username")

if (savedUsername === null) {
  nameForm.classList.remove("hide");
  nameForm.addEventListener("submit", hello);
} else {
  nameForm.classList.add("hide")
  const nameBox = document.createElement("h2");
  mainBox.appendChild(nameBox);
  // 3번 세부 조건 설정
  if (hour >= 17 || hour < 4) {
   nameBox.innerText = `Good Evening, ${savedUsername}`;
  }else if (hour >= 4 && hour < 12) {
    nameBox.innerText = `Good Morning, ${savedUsername}`;
   } else {
    nameBox.innerText = `Good Afternooon, ${savedUsername}`;
   }
}

localStorage.setItem, localStorage.getItem으로 저장의 개념을 좀 배워볼 수 있었다.