Различные режимы истории в Vue Router

Different History modes

Vue Router поддерживает несколько режимов истории, которые определяют, как приложение взаимодействует с URL-адресами браузера и как оно управляет состоянием истории браузера. Выбор подходящего режима истории важен для обеспечения оптимального взаимодействия с пользователем и соответствия вашим требованиям к приложению.

Режим hash (по умолчанию)

Hash Mode

Режим hash - это режим истории по умолчанию в Vue Router. Он использует хэш-фрагменты (часть URL-адреса после символа решетки #) для управления состоянием истории браузера.

Преимущества
  • Прост в настройке и не требует настройки сервера
  • Совместим со всеми браузерами, включая старые браузер
Недостатки
  • URL-адреса содержат символ решетки, который может выглядеть неэстетично
  • При переходе по ссылке с хэшем браузер не отправляет запрос на сервер

HTML5 History Mode

Режим HTML5 History использует API History браузера для управления состоянием истории. Он не использует хэш-фрагменты и вместо этого полагается на специальные методы pushState и replaceState

Преимущества
  • URL-адреса выглядят более чистыми и удобными для пользователя
  • Переходы по ссылкам в режиме HTML5 History отправляют запросы на сервер, что позволяет серверу правильно обрабатывать навигацию
Недостатки
  • Требуется настройка на стороне сервера для правильной обработки URL-адресов без хэш-фрагментов
  • Может не поддерживаться старыми браузерами

Абстрактный режим истории

Абстрактный режим истории похож на режим HTML5 History, но он абстрагирует взаимодействие с API History браузера. Это делает его более удобным в использовании, но также требует настройки на стороне сервера.

Этот режим не предполагает использования среды браузера и, следовательно, не взаимодействует с URL-адресом и автоматически не запускает начальную навигацию. Это делает его идеальным для среды Node и SSR. Он создается с помощью функции createMemoryHistory() и требует, чтобы вы запустили начальную навигацию после вызова app.use(router)

Преимущества
  • Более удобный в использовании, чем режим HTML5 History
  • Обеспечивает чистые и удобные для пользователя URL-адреса
Недостатки
  • Также требует настройки на стороне сервера
  • Может не поддерживаться старыми браузерами

Пример использования

Выбор режима истории зависит от конкретных требований вашего приложения. Вот пример использования каждого режима
  • Режим хэша: подходит для простых приложений, где не требуется специальная обработка URL-адресов на стороне сервера
  • Режим HTML5 History: рекомендуется для приложений, которым требуется более чистые URL-адреса и которые не зависят от старых браузеров
  • Абстрактный режим истории: лучше всего подходит для приложений, которым требуется абстрагирование взаимодействия с API History браузера

Настройка режима истории

Чтобы настроить режим истории, вам необходимо установить опцию mode в экземпляре Vue Router. Например:

Заключение

Различные режимы истории в Vue Router предоставляют гибкость в управлении состоянием истории браузера. Понимание преимуществ и недостатков каждого режима позволяет вам выбрать наиболее подходящий вариант для вашего приложения, обеспечивая оптимальное взаимодействие с пользователем и соответствие вашим техническим требованиям.