로그인한후에 백버튼을 누르다보면 다시 로그인 페이지가 나오게 됩니다. 그래서 백버튼을 일일이 주소를 기입하는 경우도 있는데요. 간단하게 로그인 페이지로 백버튼을 회피하는 방법을 알아보고자합니다.
import { goto } from '$app/navigation';
goto('/',{replaceState:true})
SVELTEKIT에서는 navigation 기능을 제공합니다.
아마 그전에는 백버튼으로 로그인 안가기 위해 window.replace()를 사용했을 텐데요. 스벨트킷에서는 이 기능이 막혀있습니다.
되는 경우도 있을 수 있는데, url은 변경되지만 페이지는 그대로 멈춰 있게됩니다.
그래서 goto option으로 replaceState 를 설정할 수 있는 기능이 있습니다.
로그인 페이지로 넘어갈때
import { goto } from '$app/navigation';
goto('/login', {replaceState:true})
이렇게 넣어주시면
replace()를 사용한 것 처럼 히스토리에 저장하지 않게 됩니다.
그리고 로그인 이후에 이동할 페이지에도
import { goto } from '$app/navigation';
goto('/', {replaceState:true})
이렇게 넣어주면
백버튼 눌러 창을 닫거나 앱을 닫기 할때 첫페이지가 두번 로딩되는 것을 방지하여 한번 깜박하는 것처럼 보이는 현상을 없앨 수 있습니다.
로그인 페이지 오픈할 때한번,
로그인 이후에 이동할 때 한번 이렇게 두번
replaceState:true 사용하시면 됩니다.