[๋ฐ๋๋ผJS๋ก ํฌ๋กฌ ์ฑ ๋ง๋ค๊ธฐ] Making a To Do List part Two
[์ถ์ฒ-์ ํ๋ธ ๋ ธ๋ง๋ ์ฝ๋ Nomad Coders]
const toDoObj = {
text: text,
id: toDos.length + 1
};
toDos.push(toDoObj);
↑์ด๊ฒ์ ์ถ๊ฐํด์ค๋ค
const toDoForm = document.querySelector(".js-toDoForm"),
toDoInput = toDoForm.querySelector("input"),
toDoList = document.querySelector(".js-toDoList");
const TODOS_LS = 'toDos';
const toDos = [];
function paintToDo(text){
const li = document.createElement("li");
const delBtn = document.createElement("button");
delBtn.innerText = "X";
const span = document.createElement("span");
span.innerText = text;
li.appendChild(span);
li.appendChild(delBtn);
toDoList.appendChild(li);
const toDoObj = {
text: text,
id: toDos.length + 1
};
toDos.push(toDoObj);
}
function handleSubmit(event){
event.preventDefault();
const currentValue = toDoInput.value;
paintToDo(currentValue);
toDoInput.value = "";
}
function loadToDos(){
const loadedToDos = localStorage.getItem(TODOS_LS);
if(loadedToDos !== null){
} else {
}
}
function init(){
loadToDos();
toDoForm.addEventListener("submit", handleSubmit);
}
init();
-<li>์ id ์ฃผ๊ธฐ
id๊ฐ ์์ด์ผ ๋์ค์ ์ด๋ค ๋ฆฌ์คํธ๋ฅผ ์ง์ธ์ง ์ ์ ์๋ค
function paintToDo(text){
const li = document.createElement("li");
const delBtn = document.createElement("button");
const span = document.createElement("span");
const newId = toDos.length + 1;
delBtn.innerText = "X";
span.innerText = text;
li.appendChild(span);
li.appendChild(delBtn);
li.id = newId;
toDoList.appendChild(li);
const toDoObj = {
text: text,
id: newId
};
toDos.push(toDoObj);
}
const toDoForm = document.querySelector(".js-toDoForm"),
toDoInput = toDoForm.querySelector("input"),
toDoList = document.querySelector(".js-toDoList");
const TODOS_LS = 'toDos';
const toDos = [];
function paintToDo(text){
const li = document.createElement("li");
const delBtn = document.createElement("button");
const span = document.createElement("span");
const newId = toDos.length + 1;
delBtn.innerText = "X";
span.innerText = text;
li.appendChild(span);
li.appendChild(delBtn);
li.id = newId;
toDoList.appendChild(li);
const toDoObj = {
text: text,
id: newId
};
toDos.push(toDoObj);
}
function handleSubmit(event){
event.preventDefault();
const currentValue = toDoInput.value;
paintToDo(currentValue);
toDoInput.value = "";
}
function loadToDos(){
const loadedToDos = localStorage.getItem(TODOS_LS);
if(loadedToDos !== null){
} else {
}
}
function init(){
loadToDos();
toDoForm.addEventListener("submit", handleSubmit);
}
init();
-todo ์ ์ฅํ๊ธฐ
function saveToDos(){
localStorage.setItem(TODOS_LS, toDos);
}
function paintToDo(text){
const li = document.createElement("li");
const delBtn = document.createElement("button");
const span = document.createElement("span");
const newId = toDos.length + 1;
delBtn.innerText = "X";
span.innerText = text;
li.appendChild(span);
li.appendChild(delBtn);
li.id = newId;
toDoList.appendChild(li);
const toDoObj = {
text: text,
id: newId
};
toDos.push(toDoObj);
saveToDos();
}
โ ์ฃผ์ : ๋ฐ๋์ push๋ฅผ ํ ํ์ ํธ์ถํ ๊ฒ
const toDoForm = document.querySelector(".js-toDoForm"),
toDoInput = toDoForm.querySelector("input"),
toDoList = document.querySelector(".js-toDoList");
const TODOS_LS = 'toDos';
const toDos = [];
function saveToDos(){
localStorage.setItem(TODOS_LS, toDos);
}
function paintToDo(text){
const li = document.createElement("li");
const delBtn = document.createElement("button");
const span = document.createElement("span");
const newId = toDos.length + 1;
delBtn.innerText = "X";
span.innerText = text;
li.appendChild(span);
li.appendChild(delBtn);
li.id = newId;
toDoList.appendChild(li);
const toDoObj = {
text: text,
id: newId
};
toDos.push(toDoObj);
saveToDos();
}
function handleSubmit(event){
event.preventDefault();
const currentValue = toDoInput.value;
paintToDo(currentValue);
toDoInput.value = "";
}
function loadToDos(){
const loadedToDos = localStorage.getItem(TODOS_LS);
if(loadedToDos !== null){
} else {
}
}
function init(){
loadToDos();
toDoForm.addEventListener("submit", handleSubmit);
}
init();
โ Javascript๋ local storage์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ string์ผ๋ก ์ ์ฅํ๋ ค๊ณ ํจ
-Object๋ฅผ String์ผ๋ก ๋ง๋ค๊ธฐ
function saveToDos(){
localStorage.setItem(TODOS_LS, JSON.stringify(toDos));
}
JSON.stringify๋ Javascript Object๋ฅผ String์ผ๋ก ๋ฐ๊ฟ์ค๋ค
โ JSON = 'Javascript Object Notation'์ ์ค์๋ง
๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ Javascript๊ฐ ๊ทธ๊ฑธ ๋ค๋ฃฐ ์ ์๋๋ก Object๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ธฐ๋ฅ์ ํ๋ค
-todo ๋ถ๋ฌ์ค๊ธฐ
function loadToDos(){
const loadedToDos = localStorage.getItem(TODOS_LS);
if(loadedToDos !== null){
const parsedToDos = JSON.parse(loadedToDos);
console.log(parsedToDos);
}
}
-local storage์์ ๋ถ๋ฌ์จ ๊ฒ์ ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ
๋จผ์ console์ฐฝ์ ์ถ๋ ฅํด๋ณธ๋ค
function loadToDos(){
const loadedToDos = localStorage.getItem(TODOS_LS);
if(loadedToDos !== null){
const parsedToDos = JSON.parse(loadedToDos);
parsedToDos.forEach(function(toDo) {
console.log(toDo.text);
});
}
}
↓์ด๋ ๊ฒ ํ๋ฉด ์ข ๋ ๊น๋ํ๋ค
function something(toDo) {
console.log(toDo.text);
}
function loadToDos(){
const loadedToDos = localStorage.getItem(TODOS_LS);
if(loadedToDos !== null){
const parsedToDos = JSON.parse(loadedToDos);
parsedToDos.forEach(something);
}
}
์ด์ ํ๋ฉด์ ์ถ๋ ฅํด๋ณธ๋ค
function loadToDos(){
const loadedToDos = localStorage.getItem(TODOS_LS);
if(loadedToDos !== null){
const parsedToDos = JSON.parse(loadedToDos);
parsedToDos.forEach(function(toDo) {
paintToDo(toDo.text);
});
}
}