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를 사용하는 것이 더 적합할 수 있음