일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 맥 어드레스
- pm2 시작
- html #select #option #multiple
- mosquitto
- pm2 상태 확인
- mosquitto.conf
- AntDesign
- transfer
- mySQL_Replication
- DataGridView 직접 입력
- DatePicker
- listener 1883
- pm2 설치
- setInterval 중지
- 서버동기화
- pm2 확인
- 데이터테이블 데이터 넣기
- allow_anonymouse
- c# datagridview 데이터 넣기
- setInterval 외부 정지
- setInterval clear
- map이 undefined가 뜰 때
- 공인IP
- setInterval 정지
- datagridview 직접입력
- timepicker
- Replication
- 1883
- invalid data
- pm2
- Today
- Total
개발 노트
Javascript - LocalStorage 본문
01. LocalStorage 기본 API
// 키에 데이터 쓰기
localStorage.setItem("key", value);
// 키로 부터 데이터 읽기
localStorage.getItem("key");
// 키의 데이터 삭제
localStorage.removeItem("key");
// 모든 키의 데이터 삭제
localStorage.clear();
// 저장된 키/값 쌍의 개수
localStorage.length;
엄밀하게는 window.localStorage를 사용해야하지만 줄여서 사용할 수 있다.
02. with Json
localStorage는 기본적으로 문자열 데이터 밖에 저장할 수 없다.
이러한 웹 스토리지의 성질 때문에 객체형 데이터를 저장할 때 다음과 같이 큰 낭패를 보게 될 수도 있다.
> localStorage.setItem('obj', {a: 1, b: 2})
undefined
> localStorage.getItem('obj')
"[object Object]"
그렇기 때문에 위와 같은 문제를 피하기 위해서 JSON형태로 데이터를 일고 쓰는 방법을 많이 사용하고 있다.
> localStorage.setItem('json', JSON.stringify({a: 1, b: 2}))
undefined
> JSON.parse(localStorage.getItem('json'))
{a: 1, b: 2}
위와 같이 로컬 스토리지에 쓸 데이터를 JSON 형태로 직렬화(serialization)하고,
읽은 데이터를 JSON 형태로 역직렬화(deserialization)해주면 원본의 데이터를 그대로 얻을 수 있다.
**
직렬화
JSON.stringfy(JSON형식의 객체)
: 객체 => 문자열로 변환하며, 이를 직렬화(serialize)라고 한다.
: 통신할 때는 문자열로 직렬화하여 주고 받는 것이 안전하다.
역직렬화
JSON.parse(JSON형식의 문자열)
: 문자열 => 객체로 변환하며, 이를 역직렬화(deserialize)라고 한다.
: 통신으로 받은 문자열은 객체로 역직렬화하여 사용하는 겻이 편리하다.
배열형 데이터를 로컬 스토리지에 저장할 때도 동일한 방법을 사용해 문제를 예방할 수 있다.
localStorage.setItem('nums', JSON.stringify([1, 2, 3]))
undefined
> JSON.parse(localStorage.getItem('nums'))
[1, 2, 3]
데이터를 없앨 때는 localStorage.removeItem('key')로 하나씩 삭제할 수 있고,
localStorage.clear()로 전체를 삭제해줄 수 있다.
번외 update
const onDataUpdate = (id, text) => {
const UpdateData = data.find((item) => item.id === id)
UpdateData.text = text;
localStorage.setItem('dataList', JSON.stringify(data))
}
update할 데이터의 id 값을 가져와 id 값이 일치한 데이터의 text 값을 변경한다.
Todo list같은거 만들 때 수정시에 사용가능 할 것 같다.
자료 출처 : https://www.daleseo.com/js-web-storage/
'JavaScript' 카테고리의 다른 글
Javascript Library - Zustand (0) | 2022.11.15 |
---|---|
JavaScript Library - Redux (0) | 2022.11.15 |
자바스크립트 fetch,callback,promise,async 게시글 (0) | 2022.01.10 |
카카오 책검색 api 사용하기 (0) | 2022.01.08 |
사칙연산 연습문제 만들기 (0) | 2022.01.07 |