@atachrus

Как корректно всё таки отдавать 404 страницу с Vue Router?

Сейчас в роуте в самом конце стоит конструкция для 403, 404 ошибок:
....
{ 
    path: '/error/403', 
    name: 'error_403', 
    component: E403
}, { 
    path: '/error/404', 
    name: 'error_404', 
    component: E404
}, {
    path: '*', 
    redirect: {name: 'error_404'}
}


Для примера (что бы не приводить весь код) в тестовом компоненте.
После того как в axios получаю код статуса ответа, я пушу на нужный мне роут с ошибкой.
if(response.status == 403) {
    this.$router.push({name: 'error_403'});
} else if(response.status == 403) {
    this.$router.push({name: 'error_404'});
}


Не нравится то, что происходит редирект на URL где показывается 404 ошибка. То же самое и с 403 и всеми другими.
Скажите возможно ли реализовать как то по другому.

К примеру что бы после перехвата нужного мне статуса я не пушил на нужный мне роут, а просто отрисовывал нужный мне компонент (E403, E404), или без смены url?

Или как правильно такое реализовать без редиректа?
  • Вопрос задан
  • 283 просмотра
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro
frontend developer
писал статью на тему 404 в vue
не претендую на истину, но работает отлично
https://habr.com/ru/post/523078/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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