웹개발/JavaScript 2

모달, 바텀시트 등의 UI가 띄워져 있을 때, 웹브라우저의 뒤로가기를 막고 닫기 처리하는 방법

모달이나 바텀시트 컴포넌트는 사용자의 주의를 환기시키거나 또는 중요한 정보를 전달해야 할 때 매우 유용하게 사용됩니다. 그런데 사용자가 해당 창을 닫기 위해 웹 브라우저의 뒤로가기 동작을 수행하게 되면 이전 페이지로 되돌아가버리게 됩니다. 이는 결국 사용성을 해치는 것이 되는데요, 모달이 띄워져 있을 때 웹 브라우저 자체의 뒤로가기를 했을 때 이전 페이지로 이동되지 않고 열려 있는 모달창(또는 바텀시트나 팝업 등)을 닫으려면 아래와 같이 구현하면 됩니다. 본 포스팅에서는 모달을 예시로 설명하고 있으나 모달 뿐만이 아니라 어떤 컴포넌트라도 응용이 가능합니다. 모달 컴포넌트와 이를 열어주는 버튼은 이미 구현했다고 가정하겠습니다. let isModalOpen = false; // 모달 띄우기 function ..

로컬스토리지(LocalStorage)에 객체(Object) 저장하기

다양한 상황에서 로컬스토리지는 매우 유용하게 사용됩니다. 그리고 로컬스토리지에 다양한 값들을 저장하고 편리하게 사용하는데, 객체(Object)는 저장시에 그냥 저장하는 것이 아닌, 한 단계를 거쳐 저장을 해주어야 우리가 원하는 형태대로 저장하고 또 읽을 수 있습니다. 아래와 같은 오브젝트가 하나 있다고 가정합니다. let person = { name: 'John', age: 26 } 이를 저장할 때, localStorage.setItem('personInfo', person) 과 같이 바로 저장을 하게 되면, 아래와 같이 [object Object] 값으로 저장이 되어 버립니다. 그렇다면 여기서 키-밸류를 가져와서 사용해야 하는 경우, 올바르게 데이터를 사용할 수 없겠죠. 객체를 로컬스토리지에 저장하고 ..