beforeunload는 사용자가 페이지를 떠나거나 새로고침하려고 할 때 발생하는 브라우저 이벤트.현재 코드에서는 beforeunload 이벤트를 통해 사이드 내비게이션의 활성화 상태를 저장하고 있습니다. 이 과정은 다음과 같은 흐름으로 이루어짐:
nav 요소의 .active 클래스가 존재하는지 확인하여 사이드 내비게이션이 열려 있는지 여부를 판단함localStorage.setItem("navActive", isCurrentlyActive)를 사용하여 사이드 내비게이션의 상태를 저장함.navActive)와 값(true 또는 false)을 통해 상태를 기록함.window.addEventListener("beforeunload", ...)를 통해 페이지가 떠나는 시점에 위의 상태 확인 및 저장 작업을 실행함.window.addEventListener("beforeunload", () => {
const isCurrentlyActive = nav.classList.contains("active");
localStorage.setItem("navActive", isCurrentlyActive);
});
beforeunload 이벤트가 발생함.nav.classList.contains("active"))를 확인.true 또는 false)를 저장함.피드백에서 언급된 "상태 저장은 unmount 시점에서 한 번만 하면 될 것 같다"는 내용은 다음과 같은 차이를 고려해야 함:
componentWillUnmount()).다른 도메인 간 데이터 공유:
localStorage는 동일한 도메인에서만 접근 가능하므로 다른 도메인에서는 사용할 수 없음.보안 문제:
사용 사례 적합성:
localStorage와 beforeunload 조합이 적합함.현재 구현된 코드에서 beforeunload는 사용자가 페이지를 떠날 때 사이드 내비게이션의 활성화 상태를 로컬 스토리지에 저장하는 데 적합합니다. 다만, 다른 도메인 간 데이터 공유가 필요하거나 보안이 중요한 경우에는 쿠키 또는 서버 측 API를 사용하는 것이 더 적합할 수 있음