Я проверяю URL для хэша.Если хеш не существует, я устанавливаю начальный хеш (маршрут по умолчанию).
if (!window.location.hash) {
console.log("Empty hash")
window.location.hash = '#home'
}
Затем я проверяю изменения хеша:
window.addEventListener('hashchange', () => {
switch (window.location.hash) {
case '#home':
document.getElementById('app').innerHTML = layout + WelcomeHomePage();
window.history.pushState('', '', 'home');
break;
case '#login':
document.getElementById('app').innerHTML = layout + loginPage;
window.history.pushState('', '', 'login');
break;
default:
break;
}
})
Итак, если я нажимаю «логин»URL-адрес в браузере изменяется с /home
на /login
, что я и хочу, но когда я console.log
полный URL-адрес, я получаю что-то вроде http://localhost:3000/home#login
, когда URL-адрес в браузере показывает /login
,Когда я нажимаю кнопку «Назад» в браузере, URL-адрес в браузере меняется на /home#login
.
Как правильно удалить хэш из URL-адреса при маршрутизации?