javascript

17. Momentum 만들기 6 - todolist 만들기2

으누아빠 2020. 6. 29. 13:43
반응형

2단계 todolist 에 저장한 값을 로컬스토리지에 저장하고 출력

  1. 사용자의 할일을 입력폼에 등록시 로컬스토리지에 저장
  2. 저장한 할일을 출력

키워드1. JSON.stringify, JSON.parse

키워드2. forEach 배열반복

전체코드

todo.js

'use strict';

const toDoForm = document.querySelector('.js-toDoForm');
const toDoInput = toDoForm.querySelector('input');
const toDoList = document.querySelector('.js-toDoList');

const TODO_ITEMS = 'toDos';
const toDos = [];

function saveToDoItem(item) {
    const stringItem = JSON.stringify(item);
    localStorage.setItem(TODO_ITEMS, stringItem);
}
function handleSubmit(event) {
    event.preventDefault();
    const currentValue = toDoInput.value;

    displayToDoList(currentValue);
    toDoInput.value = '';
}

function displayToDoList(item) {
    const li = document.createElement('li');
    const delBtn = document.createElement('button');
    delBtn.innerText = '❌';

    const span = document.createElement('span');
    const newId = toDos.length + 1;

    span.innerText = item;
    li.appendChild(delBtn);
    li.appendChild(span);
    li.id = newId; //li에 id값을 설정한 이유는 추후 삭제를 위한것임
    toDoList.appendChild(li);

    const toDoObj = {
        text: item,
        id: newId //추후 삭제를 위해 로컬스토리지에 id값을 부여
    };

    toDos.push(toDoObj);
    saveToDoItem(toDos);
}

function loadToDoList() {
    const loadToDoItems = localStorage.getItem(TODO_ITEMS);
    if (loadToDoItems !== null) {
        const parseItems = JSON.parse(loadToDoItems);

        parseItems.forEach(function (item) {
            displayToDoList(item.text);
        });
    }
}

function init() {
    loadToDoList();
    toDoForm.addEventListener('submit', handleSubmit);
}

init();

'javascript' 카테고리의 다른 글

19. Momentum 만들기 7 - todolist 만들기3  (0) 2020.06.30
18. Array APIs  (0) 2020.06.30
16. JSON  (0) 2020.06.29
15. Array 심화학습  (0) 2020.06.29
14. Momentum 만들기 5 - todolist 만들기1  (0) 2020.06.26