Есть два способа поддержки маршрутизации в одностраничных приложениях:
- Хешированные пути URL - мы прерываем путь URL с помощью символа # (хэш), чтобы браузер понимал, что это всего лишь виртуальный фрагмент.
- Обычные URL-пути (нехешированные URL-пути) - серверу необходимо перехватить запрос и вернуть index.html.
В этой статье вы узнаете о плюсах и минусах этих двух подходов, и это поможет вам выбрать лучший для вашего варианта использования.
Совет: Делитесь своими повторно используемыми компонентами между проектами с помощью Bit (Github). Bit упрощает совместное использование, документирование и организацию независимых компонентов любого проекта .
Используйте его для максимального повторного использования кода, совместной работы над независимыми компонентами и создания масштабируемых приложений.
Bit поддерживает Node, TypeScript, React, Vue, Angular и другие.
Обычные пути URL
По их внешнему виду можно определить, что это обычные URL-адреса.
https://mysite.com/dashboard https://mysite.com/shopping-cart
Преимущества
- Обычные URL-адреса выглядят красиво и аккуратно.
- Эти типы URL-адресов имеют большее преимущество с точки зрения SEO.
- Строительные леса веб-приложений с использованием таких фреймворков, как Angular, поддерживают это по умолчанию.
- Современные серверы разработки (например, ng serve в Angular) также поддерживают это.
В общем, вы можете видеть, что использование обычных URL-адресов - лучший вариант, учитывая доступную поддержку. Однако эти преимущества имеют свою цену.
Вызовы
Когда мы рассматриваем обычные URL-адреса для одностраничных приложений, вам необходимо настроить свой веб-сервер для его поддержки.
- Необходимо настроить веб-сервер для обслуживания index.html для путей маршрута SPA.
- Поскольку вносить в белый список каждый путь маршрута SPA на веб-сервере непрактично, необходимо иметь отдельный шаблон для API, чтобы отличать их от маршрутов SPA (например, / api / *, выделенный для API).
- Необходимо соблюдать особую осторожность при определении ссылок URL-пути в SPA, поскольку это может привести к полной перезагрузке страницы.
- В некоторых случаях, например, при раздельном размещении внешнего и внутреннего интерфейса, вам понадобится шлюз для выполнения маршрутизации на основе путей на стороне сервера.
Хешированные пути URL
Хешированные URL-адреса будут иметь следующий формат. Часть, отделенная хешем, называется фрагментом или якорем.
https://mysite.com/#/dashboard https://mysite.com/#/cart
Если вы начали работать с SPA несколько лет назад, хешированные URL-пути тогда были нормой. Но за последние несколько лет все изменилось. SPA стали стандартом для веб-разработки, и это подтверждается развитием инструментов и технологий. Вот почему сейчас трудно увидеть отличительную схему URL-адресов, чем обычную для SPA. Однако у хешированных URL есть несколько преимуществ, о которых стоит знать.
Преимущества
- Браузеры не рассматривают фрагмент пути после хеша как отдельную страницу. Такое поведение браузера идеально подходит для одностраничных приложений, поскольку при обновлении страницы будет перезагружен index.html.
- Определение ссылок с хешем во внешнем интерфейсе безопасно, так как это не приведет к перезагрузке страницы.
- Конфигурация сервера проста и позволяет легко различать запросы API и внешнего интерфейса (тем не менее, нам нужно спланировать пути к ресурсам внешнего интерфейса).
Недостатки
Когда дело доходит до хешированных URL-адресов, основным недостатком является его внешний вид.
- Некоторые пользователи могут посчитать это необычным.
- Не лучший вариант для SEO.
В противном случае это проще всего реализовать для SPA.
Обработка URL-путей в SPA
Сегодня почти все современные фреймворки SPA содержат модуль маршрутизации со встроенной поддержкой для обработки изменений URL или фрагментов.
В противном случае вам придется разработать собственное решение для отслеживания изменений URL-адресов в SPA. Чтобы реализовать собственный маршрутизатор, вы можете использовать следующие API-интерфейсы браузера.
- API истории - дает прямой доступ к интерфейсу истории вашего браузера. Это позволяет выполнять манипуляции с URL без хешей. У него есть такие методы, как
back()
,forward()
, которые позволяют переходить к предыдущим или следующим состояниям на основе истории просмотров. - AP Location I вместе с прослушивателем событий onHashChange - в этом методе браузер будет запускать
onHashChange
каждый раз, когда он видит изменение хэша в URL-адресе. Вы можете легко управлять изменениями хэша без связи с сервером, используя этот метод.
Резюме
Вы можете использовать либо хешированные URL-адреса, либо обычные URL-адреса для одностраничных приложений. Учитывая плюсы и минусы этих двух подходов, вы согласитесь со мной, что оба варианта технически жизнеспособны.
Даже если вы используете для приложения обычные URL-адреса, его будет поддерживать любая платформа или библиотека одностраничных приложений. Таким образом, вам не нужно беспокоиться о сложностях, связанных с маршрутизацией. Но вам, возможно, придется изучить настройку на стороне сервера, чтобы это поддержать.
Я надеюсь, что эта статья дает обзор использования этих двух типов URL-адресов и расширяет ваше понимание. Если у вас возникнут какие-либо вопросы, вы можете задать их в комментарии ниже.
Выбор остается за вами!