로컬스토리지 (localStorage)
developer.mozilla.org/ko/docs/Web/API/Window/localStorage
javascript
의 localStorage
기능을 사용하면 브라우저간 데이터를 저장하거나 가져올수있다.
localStorage.setItem
// localStorage에 name이라는 key값으로 Sample이라는 value를 저장한다.
localStorage.setItem("name", "Sample");
localStorage.getItem
// localStorage에 name이라는 key값으로 된 값을 가져온다. 이 경우는 위에 저장해둔 "Sample"을 가져온다.
localStorage.getItem("name");
localStorage.clear();
// localStorage 초기화
localStorage.clear();
localStorage
는 대부분의 경우 json
형태로 저장하는 경우가 많다. (객체) 아래는 예제
HTML
// Bootstrap
<div class="container mt-4">
<h1 class="text-center text-primary">JS Local Storage</h1>
<form>
<div class="form-group">
<label for="#name">Name</label>
<input type="text" id="name" class="form-control" />
</div>
<div class="form-group">
<label for="#age">Age</label>
<input type="text" id="age" class="form-control" />
</div>
<div class="form-group">
<label for="#addr">Addr</label>
<input type="text" id="addr" class="form-control" />
</div>
<button class="btn btn-primary btn-block" id="addBtn" >Add</button>
<button class="btn btn-danger btn-block" id="resetBtn">Reset</button>
</form>
<ul class="list-group mt-4">
</ul>
</div>
JS
const nameInput = document.querySelector('#name');
const ageInput = document.querySelector('#age');
const addrInput = document.querySelector('#addr');
const addButton = document.querySelector('#addBtn');
const resetButton = document.querySelector('#resetBtn');
const personList = document.querySelector('.list-group');
let persons = [];
addButton.addEventListener('click', addPerson);
resetButton.addEventListener('click', clearLocal);
window.onload = getStorage();
function getStorage() {
let localPerson = JSON.parse(localStorage.getItem("person"));
if (localPerson) {
for (p in localPerson) {
const newList = document.createElement('li');
newList.innerHTML = `${localPerson[p]}`;
newList.classList.add('list-group-item');
personList.appendChild(newList);
}
} else {
console.log('no local storage items');
}
}
function addPerson(e) {
e.preventDefault();
const nameValue = nameInput.value;
const ageValue = ageInput.value;
const addrValue = addrInput.value;
if (nameValue == "" || ageValue == "" || addrValue == "") {
alert('insert data');
} else {
const newList = document.createElement('li');
newList.innerHTML = `name : ${nameValue}, age : ${ageValue}, addr : ${addrValue}`;
newList.classList.add('list-group-item');
personList.appendChild(newList);
saveStorage();
}
function saveStorage() {
let personData = `name : ${nameValue}, age : ${ageValue}, addr : ${addrValue}`;
persons.push(personData);
localStorage.setItem("person", JSON.stringify(persons));
}
}
function clearLocal() {
localStorage.clear();
alert('clear local storage !');
}
button
을 누르면 input
에서 입력했던 값들을 ul
에 출력해주고 localStorage
에 저장한다.
localStorage
에 저장하는 부분을 보면 위에서 배열을 만들어주고 그 배열에 값을을 push
시켜주고
마지막에 저장할때는 JSON.stringiry
를 통해서 string
형태로 저장해준다.
let persons = [];
function saveStorage() {
let personData = `name : ${nameValue}, age : ${ageValue}, addr : ${addrValue}`;
persons.push(personData);
localStorage.setItem("person", JSON.stringify(persons));
}
반대로 가져올때는 string
화 되어있는 localStorage
값을 JSON.parse
로 객체형태로 변경해준다.
그다음에 다시 ul
태그에 출력해주는 형태 이다.
let localPerson = JSON.parse(localStorage.getItem("person"));
if (localPerson) {
for (p in localPerson) {
const newList = document.createElement('li');
newList.innerHTML = `${localPerson[p]}`;
newList.classList.add('list-group-item');
personList.appendChild(newList);
}
} else {
console.log('no local storage items');
}
'JavaScript > Vanilla JS' 카테고리의 다른 글
클래스 (Class) 2 (0) | 2021.02.23 |
---|---|
클래스 (Class) (0) | 2021.02.22 |
날짜 객체 (new Date()) (0) | 2021.02.09 |
javascript 변수 호이스팅 (0) | 2021.02.01 |
javascript에서 copy 하기 (0) | 2020.12.16 |
댓글
이 글 공유하기
다른 글
-
클래스 (Class) 2
클래스 (Class) 2
2021.02.23 -
클래스 (Class)
클래스 (Class)
2021.02.22 -
날짜 객체 (new Date())
날짜 객체 (new Date())
2021.02.09 -
javascript 변수 호이스팅
javascript 변수 호이스팅
2021.02.01