일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
- itemBackground
- JavaScript
- hoos
- 자바스크립트
- redux/toolkit
- 안드로이드
- 옵션메뉴꾸미기
- state_checked
- 리액트
- toolkit
- 코틀린
- Android
- 커스텀옵션메뉴
- nodejs
- 팝업메뉴
- javaSrcript
- Redux
- react
- Node
- JS
- readAsDataURL
- 팝업메뉴 꾸미기
- Dialog
- ContextAPI
- Menu
- custom
- 메뉴클릭
- framework
- bottomNav
- Hooks
- Today
- Total
대기업을 향한 디벨롭 블로그
localStorage 브라우저에 데이터 저장하기(상세) 본문
참고용사이트 https://ko.javascript.info/localstorage
localStorage와 sessionStorage
ko.javascript.info
브라우저에 데이터를 저장할 수 있는 LocalStorage를 알아보겠습니다. 브라우저에 데이터를 저장할 수 있는 객체는 2가지가있는데 하나는 sessionStorage와 우리가 배워볼 localStorage가 있다. 이 두가지를 웹 스토리지 객체라고 부른다.
먼저 localStorae의 특징을 알아보자.
- 데이터를 저장할때의 자료형은 '문자열'데이터만 저장할 수 있다.
- 데이터를 새로고침하여도 데이터가 남아있다. (브라우저를 닫았다 열어도 없어지지않음)
- 웹 스토리지객체는 네트워크 요청시 서버로 전송되지않는다.
- 최소 2MB이상의 객체를 저장할 수 있으며 개발자측에서 웹스토리지를 조작할 수 있다.
- 서버측에서 HTTP헤더를 통해 스토리지객체를 조작할 수 없다. 객체의 모든 조작은 자바스크립트에서 수행된다.
- 스토리지 객체는 도메인 , 프로토콜 , 포트로 정의된 '오리진(origin)'에 묶여있다. 즉 프로토콜과 서브도메인이 다르면 데이터에 접근할 수 없다
- KEY - VALUE형식으로 저장된다.
쇼핑몰 사이트를 들어가보면 '최근본상품' 이런UI가 있을거다. localStorage를 이용해 만들 수 있다. 내가봤던 상품의 데이터를 localStorage에 저장한거다.
이러한 특징들이 있다. 이해가 안갈 수도 있겠지만 , 쉽게말해 내가 사용한 브라우저의 정보를 이용해 데이터를 저장한다. 이제 localStroge를 코드로 알아보자!
1. 데이터 저장하기
export default function localstorageTest(){
localStorage.setItem('name' ,'mang')
}
localStorage.setItem()함수를 이용해 데이터를 저장하는데 왼쪽이 Key가 되고 , 오른쪽이 Value가 된다. key,value모두 문자열만 저장이된다. 함수를 실행해보자.
왼쪽 하단 Storage에서 Local Storage밑에 http://localhost:3000을 보면 내가 저장한 데이터를 볼 수 있다.
Key Value 가 잘 저장되었다.
2.데이터 불러오기
데이터를 저장해보았으니 이제 저장한 데이터를 불러와서 출력해보자.
export default function localstorageTest(){
const localData = localStorage.getItem('name');
console.log(localData);
}
데이터를 가져올때는 getItem(Key이름)을 이용하여 가져온다. localData변수에 담아줬는데 Value값이 들어간다. 그래서 콘솔에 찍어보면
잘 찍히는걸 볼 수있다. 이렇게 데이터를 가져온다.
3.데이터 삭제하기
Key를 이용하여 데이터를 삭제해보겠다.
export default function localstorageTest(){
localStorage.removeItem('name')
}
removeItem()함수에 key를 넣어 해당key값의 데이터들을 통으로 삭제해버린다. 실행후 콘솔을 확인해보자.
삭제됬다.. 눈씻고 찾아봐도 찾아볼 수 없다....
3-1.데이터 모두 삭제하기
export default function localstorageTest(){
localStorage.clear()
}
clear()함수는 localStorage의 데이터를 삭제할 수 있다.
4. index의 해당하는 Key 불러오기
key()함수를 이용해서 localStorage의 index의 key를 받아올 수 있는데 코드를 보면 바로 이해가 될거다.
일단 3개의 데이터를 만들어주겠다.
export default function localstorageTest(){
localStorage.setItem('name', 'mang')
localStorage.setItem('age' , '23')
localStorage.setItem('job' , 'student')
}
먼저 이렇게 3개를 만들어서 저장하겠다.
저장완료. 순서대로 들어가있다. 이제 index는 정해져있다. 0=name , 1=age , 2=job 이되었다.
export default function localstorageTest(){
localStorage.setItem('name', 'mang')
localStorage.setItem('age' , '23')
localStorage.setItem('job' , 'student')
console.log(localStorage.key(0))
console.log(localStorage.key(1))
console.log(localStorage.key(2))
}
차례대로 key()함수를 이용하여 0번째 , 1번째 , 2번째 해당하는 인덱스의 key값을 콘솔에 찍어보았다.
잘 나왔다.
5.총 localStorage데이터의 length가져오기
localStorage의 몇가지 데이터가 저장되어있는지 알아볼 수 있는 프러퍼티이다.
export default function localstorageTest(){
localStorage.setItem('name', 'mang')
localStorage.setItem('age' , '23')
localStorage.setItem('job' , 'student')
console.log(localStorage.length)
}
어떤 값이 출력될거라고 생각하나? 5초안에 답이나오지 않았다면 IQ걱정할 때가 된거같다.
3이 출력되었다 왜? localStorage.setItem()함수로 3가지의 데이터를 저장했다.
실전에서 (Array/Object)
1.배열 저장하기
여기서 코딩을 쫌 해본사람들은 생각해봤다고 생각한다. 문자열밖에 저장이안되는데 배열하고 객체는 어떻게 저장하지...? 그렇다 저장못한다. 못해... 그래서 우리가 사용할건 JSON을 이용하여 저장할거다. 이 JSON 데이터포멧을 이용하면 localStorage에 손쉽게 접근할 수 있다.
코드로 가보자.
export default function localstorageTest(){
let arr1 = [1,2,3,4,5];
localStorage.setItem('Array' , JSON.stringify(arr1));
}
JSON.stringify()함수를 이용해서 arr1의 배열을 문자열 형태로 포멧해준다.
잘 저장되었다. 하지만 getItem으로 불러서 쓸려고 해도 안써질거다. 왜냐면 JSON형태로 배열이 저장되어있는거다.
다시 배열형태로 돌려주면된다.
1.배열 불러오기
export default function localstorageTest(){
let arr1 = JSON.parse(localStorage.getItem('Array'));
arr1.map((element , index)=>{
console.log(element)
})
}
localStorage.getItem함수를 이용하여 Array를 불러오는데 JSON.parse를 감싸주어 문자열에서 다시 배열형태로 JSON이 알아서 바꿔준다.
객체도 배열하고 방법이 100% 똑같다.
'ReactJS' 카테고리의 다른 글
이미지 여러개 미리보기 - FileReader 예제 (0) | 2022.08.04 |
---|---|
이미지 미리보기 - FileReader 객체 사용하기(공식문서 파헤치기) (0) | 2022.08.04 |
Redux Toolkit-3 state파라미터(payload) 응용 (0) | 2022.07.28 |
Redux Toolkit-2 state변경하기 (useDispatch) (0) | 2022.07.28 |
Redux Toolkit-1 (useSelector) state만들기 사용하기 (0) | 2022.07.27 |