JavaScript-3

Javascript - TodoList 1


localstorage, event, stringfy, filter


Flow

  • ์ƒˆ๋กœ ๊ณ ์นจ์ด๋‚˜, ์›น์— ์žฌ์ ‘์†์‹œ stroage์— ์žˆ๋Š” ๊ฐ’์„ ์ฝ์–ด์˜ค๊ธฐ ์œ„ํ•ด load๋ฅผ ํ•ด์ค€๋‹ค. (loadedToDo)
    • ๊ฐ ๊ฐ’์„ paint ํ•ด์ค€๋‹ค. (paintToDo)
  • ์ž…๋ ฅ ๊ฐ’์— ๊ฐ’์„ ์“ด ํ›„, submit event (handleSubmit)
    • ๊ฐ’์„ paint ํ•ด์ค€๋‹ค. (paintToDo)
      • button event (deleteToDo)
        • button ์ƒ์„ฑ ๋ฐ event ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค.
        • html list remove, object์— filterํ•ด์„œ push
        • object save
      • ๊ฐ ๊ฐ’์„ object์— push ํ•œ๋‹ค.
    • ์ €์žฅํ•œ object saveํ•œ๋‹ค. (saveToDo)

loadedToDo, saveToDo

  • Saving the User Name user computer์— ์ž‘์€ localstorage๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.
    ์›น์—์„œ โ€œF12โ€์— local Storage ๋‚ด - file://์— ํ™•์ธ๊ฐ€๋Šฅ!

s1

  • localStorage.setItem / localStorage.getItem ์œผ๋กœ localStorage ์กฐ์ • ๊ฐ€๋Šฅ
    (Url์„ ๊ธฐ์ค€์œผ๋กœ ์›€์ง์ธ๋‹ค.)

handleSubmit

  • form ํƒœ๊ทธ ๋‚ด์— input์„ ๋‘ฌ์•ผ enter๊ฐ€ ํ™œ์„ฑํ™” ๋œ๋‹ค.
    why? form์€ ๋ฐ์ดํ„ฐ๋ฅผ ์›น์‚ฌ์ดํŠธ์— ์ „์†กํ•ด์ค€๋‹ค. ex ) input, label

  • event์˜ ๊ธฐ๋ณธ ๋™์ž‘์€ ๋™์ž‘์„ ์‹คํ–‰ํ•˜๋ฉด ๊ณ„์† ์œ„๋กœ ๊ฐ€์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ์‹คํ–‰(์ƒˆ๋กœ๊ณ ์นจ)ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๊ฒƒ์„ ๋ง‰์•„์ฃผ๊ธฐ ์œ„ํ•ด event.preventDefault ๋ฅผ ํ•ด์ค€๋‹ค.

painToDo

  • localstorage์—๋Š” javascript ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ๋ถˆ๊ฐ€ string์œผ๋กœ ์ €์žฅํ•˜๋ ค๊ณ  ํ•œ๋‹ค.
    -> JSON.stringify
    localstorage์— ์žˆ๋Š” string์„ javascript ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊ฟ” ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.
    ->JSON.parse
    JSON (JavaScript Object Notation) -> JavaScript๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ

  • parsedToDos.forEach (function (Todo) ) : parsedToDos array์•ˆ์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ๊ฐ๊ฐ Todo ๋ณ€์ˆ˜ ์•ˆ์— ๋„ฃ์–ด function์„ ์‹คํ–‰ํ•œ๋‹ค.

deleteToDo

  • filter ๋Š”
     const cleanToDos = toDos.filter(function filterFn(toDo)
     { return toDo.id !== parseInt(li.id); });
    

    return์— ๋งž๋Š” ์กฐ๊ฑด๋“ค์˜ ๊ฐ’๋งŒ ์ฐพ์•„์ค€๋‹ค.

point:

event.preventDefault : event ์‹œ refresh ๋˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์ค€๋‹ค.

Element ์ƒ์„ฑ? document.createElement / innerText / appendchild

list ์ƒ์„ฑ? array ์ด์šฉํ•ด์„œ object์— push ํ•ด์ค€๋‹ค.

LocalStorage ๋ฐ์ดํ„ฐ?

javascript ๋ฐ์ดํ„ฐ๋Š” JSON.stringfy๋ฅผ ํ†ตํ•ด string >๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

localstroage๋ฐ์ดํ„ฐ๋Š” JSON.parse๋ฅผ ํ†ตํ•ด javascript ๋ฐ์ดํ„ฐ๋กœ >๋ฐ”๊ฟ”์ค€๋‹ค.

ํƒœ๊ทธ: ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: