[JavaScript] 바닐라 JS로 크롬 앱 만들기 (10) - Loading To Dos

선영·2021년 10월 9일
0

JavaScript

목록 보기
10/27
post-thumbnail

2021.10.09(토)
JS #7.4~#7.5

TO DO LIST(2)

#7.4~#7.5 - Loading To Dos

localStorage에 string으로써 To-Do 목록을 저장하는데 까지는 성공,
새로고침 후에도 그 목록이 계속 화면에 유지되도록 해보자.

JSON.parse()

괄호안의 string을 자바스크립트가 이해할 수 있는 array의 형태로 바꿔줌

  • 아래와 같이 JSON.stringfy()의 괄호안에 array를 적으면, string으로 반환되지만 JSON.parse()의 괄호안에 string의 형태로 array를 적어주면
    자바스크립트가 이해할 수 있는 온전한 array의 형태로 반환해준다.
  • localStorage.getItem()으로 저장된 값을 불러올때 string을 반환하지만
    JSON.parse(localStorage.getItem())으로 저장된 값을 불러오면 array의 형태로 반환해준다.
  • localStorage에 저장해둔 const TODOS_KEY = "To-Do"를 불러온다
    그리고, if값으로 savedToDos가 null(공란)이 아닐경우
    즉, savedToDos가 존재할 경우, 해당값을 JSON.parse()로 array로 만든다.

.forEach()

괄호안에 functionName을 넣으면, 우리는 array에 있는 각각의 item에 대해 해당 function을 실행할 수 있다.

  • parsedToDos에 .forEach(functionName = sayHello)를 적용시켜서
    해당 function에 JS가 기본으로 제공하는 item값을 넣고 console.log해보면,
  • 결과적으로 각 item값을 console창에서 볼 수 있다.

Arrow function =>

  • function을 작성할 때 더 짧게 쓸 수 있다.
  • 어찌됐든 우리는 각 item에 대해서 그려주는 function이 필요하고,
    이는 functionName = paintToDo에 이미 구현되어 있으므로, 아래와 같이 입력
  • 새로고침해도 화면에 저장된 값을 그대로 그려주는걸 확인할 수 있다.
  • 그런데 수박을 새로 추가하면, 저장된 값이 날아가고 새로운 값으로만 채워진다.
  • 이를 개선하기 위해 let toDos = []; 로 변경의 여지를 준 뒤,
    아래와 같이 저장된 toDos값이 있을때 toDos는 parsedToDos로 대체된다.
  • 그렇게 하면, 아래와 같이 수박을 추가해도 기존의 값을 보존할 수 있게된다!
profile
Superduper-India

0개의 댓글