회사 홈페이지를 리뉴얼하던 중 Language select를 개발하던 중이었다.
Language라는 상태를 전체 상태로 생성하였고,
모든 컴포넌트에서 해당 상태가 변경될 때 언어가 바뀌게 적용되게 개발하던 중...
한 가지 궁금증이 생겼고,,,
생각을 흐름을 따라 sessionStorage라는 결론을 내렸다.
생각했던 대로 잘 동작하였고, 이에 따라 localStorage와 sessionStorage의 개념과,
코드 적용 예제를 정리해 보려 한다.
웹 스토리지 객체(web storage object)인 localStorage와 sessionStorage는 브라우저 내에 키-값 쌍을 저장할 수 있게 해준다.
다음과 같이 localStorage와 sessionStorage에 test
라는 키에 각 값을 저장할 수 있다.
localStorage.setItem('test', 'Hello localStorage!');
sessionStorage.setItem('test', 'Hello sessionStorage!');
그리고, 아래처럼 값을 불러올 수 있다.
console.log(localStorage.getItem('test')); // Hello localStorage!
console.log(sessionStorage.getItem('test')); // Hello sessionStorage!
console.log(localStorage.getItem('test'));
를 하면, 위의 값을 얻을 수 있다.console.log(sessionStorage.getItem('test'));
는 undefined
값을 표출한다.// AppLayout.js - ①
useEffect(() => {
const initialLanguage = sessionStorage.getItem('language');
setLanguage(initialLanguage || 'korea');
}, []); // - ②
useEffect(() => {
sessionStorage.setItem('language', language);
}, [language]); // - ③
sessionStorage
에 language
키의 값이 있는지 확인한 후 없다면 'korea'
로 초깃값을 저장한다.language
의 값이 변경될 때마다, sessionStorage
에도 업데이트해준다.혹시 내용에 오류가 있다면 피드백 부탁드립니다. 🙇🏻♀️
[참고]