@Ivan1331

Роутер для SPA использующий history api?

Мне нужен роутер на ванильном js-e для spa сайта. Вот на хабре нашел вроде как идеальную реализацию, но есть одна проблема. Эта реализация, да и все что я нашел в интернете хорошо работают только с hash, через history api который нужен мне, они отказываются работать подскажите что я делаю не так, или подскажите другую рабочую реализацию.

Итак я просто беру код класса Router, и задаю нужные мне роуты:
const router = new Router({
  mode: 'history',
  root: '/'
});

router
  .add('', () => {
    console.log('deafult page');
  }).add('settings', () => {
    console.log('settings page');
  }).add(/task-list/, () => {
    console.log('task-list page');
  })

Выполняется только deafult page если я введу в строке http://localhost:3000/settings то мне выдаст
Cannot GET /settings
если я повешаю через клик событие
document.addEventListener('click',()=>router.navigate('settings'))

то переход на страницу настроек произойдет, но при этом код console.log('settings page'); не отработает
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
@Ivan1331 Автор вопроса
Оказывается вебпаку нужно разрешить работать с historyApi, имхо странная тема, может кто то пояснит зачем такая хитрая настройка нужна, и почему она по умолчанию false.
historyApiFallback: true,
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы