Как удалить хэш из URL, используя Vue-router в Laravel, не обращаясь к серверу снова? - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу удалить хеш (#) из URL в vuejs, используя vue-router в Laravel.Поэтому я использовал mode:'history' или history: true

const router = new VueRouter({
    routes: routes,
    mode: 'history'
    //history: true
});

, и он отлично работает, но проблема в том, что каждый раз, когда запрос изменяется, например, с example.com/home на example.com/user, запрос будет отправлен на сервери вся страница будет обновлена, однако я хочу изменить содержание только между заголовком и основанием страницы.Поэтому, когда я отмечаю строку в верхнем меню, она не будет помечена при переходе на другой URL, но теперь она отправляет сервер, и страница полностью загружается, когда не используется mode:'hash'.

Как я могу удалить хеш без отправкиЕще один запрос к серверу, чтобы полностью не загрузить страницу и загрузить только часть тела?

Спасибо

1 Ответ

0 голосов
/ 20 сентября 2018

У меня еще нет созданных ссылок, я просто изменяю их вручную в URL.Если вы говорите, что это не работает вручную, то почему он работает с режимом: 'hash'?Так что если роутер-линк работает так же, я должен его использовать, я думаю.Я не знал об этом

хорошо ... Я понял

если вы используете режим истории, вам придется использовать <route-link>, потому что, каккак отмечалось выше,

В режиме истории HTML5 ссылка маршрутизатора будет перехватывать событие нажатия, чтобы браузер не пытался перезагрузить страницу.

При вводеновый URL, браузер загружает эту страницу, это способ работы браузера, и вы не можете обойти это.Фреймворк, однако, обрабатывает его по-другому, обновляя url и контент, но не на самом деле перенаправление (перезагрузка)

Причина, по которой это работает с hashbang, заключается в том, что броузер обрабатывает все послесимвол # в качестве навигации по странице.То есть он не считает это перенаправлением.Хеш-символ традиционно использовался в HTML, чтобы разрешить переход к элементам на странице.

Например, about-us.html#contact перенаправляет пользователя на страницу about и прокручивает к форме контакта.

современные js-фреймворки используют хеш для взлома этой навигации, не перенаправляя и используя контент после хеша для прохождения маршрутов.

Например, если у вас есть маршрут, такой как localhost:8080/#/about-us, часть localhost:8080/#это то же самое, что и localhost:8080/index.html#, поэтому изменение чего-либо после того, как символ # удерживает браузер на той же странице, а javascript (vue router) обрабатывает любые необходимые изменения.

Надеюсь, это очистит его.Кстати, я не использовал режим истории ни в одном из своих проектов.

...