위코드 개강(8/17) D-27.
배운 것/개발한 것
☆ 노마드코더 JS 강의 : 강의 끝내기 + 코드 리뷰 글 올리기 (링크)
1. #3.5 Making a To Do List (Part 1)
1) html 코드 일부
<form class="js-toDoForm">
<input type="text" placeholder="Write a to do" />
</form>
<ul class="js-toDoList">
</ul>
2) JS 코드 일부
const toDoForm = document.querySelector(".js-toDoForm"),
toDoInput = toDoForm.querySelector("input"),
toDoList = document.querySelector(".js-toDoList");
const TODOS_LS = "toDos";
function paintToDo(text) {
const li = document.createElement("li");
const delBtn = document.createElement("button");
delBtn.innerText = "❌";
const span = document.createElement("span");
span.innerText = text;
li.appendChild(delBtn);
li.appendChild(span);
toDoList.appendChild(li);
}
function handleSubmit(event) {
event.preventDefault();
const currentValue = toDoInput.value;
paintToDo(currentValue);
toDoInput.value = "";
}
function loadToDos() {
const toDos = localStorage.getItem(TODOS_LS);
if (toDos !== null) {
}
}
function init() {
loadToDos();
toDoForm.addEventListener("submit", handleSubmit);
}
init();
- 유저 이름 저장 로직과 거의 동일
- paintToDo(text) : document.createElement(참조)를 사용하여 문서 내에 li, button, span을 생성한 후 투두리스트 영역에 li를 붙여넣음
2. #3.6 Making a To Do List (Part 2)
1) JS 코드 (이미 저장된 투두리스트 불러오기 기능)
function loadToDos() {
const loadedToDos = localStorage.getItem(TODOS_LS);
if (loadedToDos !== null) {
const parsedToDos = JSON.parse(loadedToDos);
parsedToDos.forEach(function(toDo) {
paintToDo(toDo.text);
});
- JSON.parse (참조) : JSON 형식의 파일을 자바스크립트 배열 형식으로 변환해주는 기능
- forEach (참조) : 배열의 각 요소들에 대해 각각 특정 함수를 수행시킬 수 있는 반복문의 종류
- loadToDos() 함수는 localstorage의 기존 투두리스트를 탐색하고, 항목이 존재할 경우 이를 자바스크립트 형태로 변환하여 각각의 요소에 paintToDo 함수를 실행
2) JS 코드 2 (객체를 투두리스트에 저장하는 기능)
const toDoObj = {
text: text,
id: newId
};
toDos.push(toDoObj);
saveToDos();
- const todos = [] : 투두리스트를 저장하는 빈 배열 생성
- toDoObj 객체를 생성 후, text와 id 정보를 toDos배열에 전달 후 저장
3. #3.7 Making a To Do List (Part 3)
1) JS 코드 (이미 저장된 투두리스트 불러오기 기능)
let toDos = [];
function deleteToDo(event) {
const btn = event.target;
const li = btn.parentNode;
toDoList.removeChild(li);
const cleanToDos = toDos.filter(function(toDo) {
return toDo.id !== parseInt(li.id);
});
toDos = cleanToDos;
saveToDos();
}
'프로그래밍' 카테고리의 다른 글
wecode 사전스터디(7/25) 로그 (0) | 2020.07.26 |
---|---|
자바스크립트 array (0) | 2020.07.22 |
wecode 사전스터디(7/20) 로그 - 2 (노마드코더 리뷰) (0) | 2020.07.20 |
wecode 사전스터디(7/20) 로그 - 1 (노마드코더 리뷰) (0) | 2020.07.20 |
wecode 사전스터디 1주차(7/19) 로그 (0) | 2020.07.19 |
댓글