Роутинг на JS. Это легально?

Добрый вечер.
Знаю про роутинг на сервере, делал что-то вроде небольшого движка на PHP, который принимал URL, отдавал его роутеру, тот вызывал контроллеры и понеслась. Надеюсь хоть тут я сделал все правильно, по этому, решил глянуть на еще одну технологию - AngularJS
И либо я тупой(и то и другое тоже возможно), либо в AngularJS есть модуль роутинга(angular-route он вроде называется). Т.е теперь не на сервер нужно отправлять URL, а AngularJS сам его берет из адресной строки, и через него же происходит роут(я так это понял) - подгружается нужный темплейт и запускается контроллер. То есть теперь роутинг происходит на клиенте - клиент сам выбирает какой темплейт ему подгрузить, а сервер, по сути, только отдает информацию из БД.

Собственно, вопросы:
1. Все ли правильно я описал? Где неправильно - поправьте.
2. Можно ли вместо Angular попробовать написать свой роутер(клиентский) и использовать его в проектах(меня потом не уволят нахер?)?
3. Читал, что Angular - это для SPA(Single Page Application). Вот все мы знаем ВКонтакте. ВКонтакте - это SPA?
4. Дает ли Angular четкое разделение на front-end и back-end? Т.е я могу разрабатывать разный front-end для нескольких back-end? Например использовать для сайта и для мобильного приложения один и тот же back-end?

Спасибо, что прочитали эту писанину. Я просто много чего уже перечитал про AngularJS, и нужно, чтобы кто-то структурировал все это у меня в голове
  • Вопрос задан
  • 1168 просмотров
Решения вопроса 1
@afanasiyz
Javascript-разработчик
Вечер добрый.
Вы не тупой, в ангуляре существует модуль роутинга.
Да, ангуляр сам получает событие изменения адресной строки, и, согласно вашему коду, на него реагирует.
Ответы:

1. Да, сервер, в случае SPA просто отдает данные из БД а если роут ему неизвестен - просто отдаст index.html, в котором будет бандл angular (или React) приложения, которое развернется и проверит, что написано в адресной строке, может ли это приложение обработать этот запрос. Все таки изначально, при первом запросе url идет до бэкэнда.
2. Ну, если вы не хотите использовать Angular - да, такой подход имеет место быть, вопрос только зачем - современные фреймверки позволяют без боли создавать приложения. не нравится ангуляр - пробуйте React или Vue.
3. Да, ангуляр, как и реакт - для SPA. Не отвечу точно про ВК, судя по всему да, или использует много элементов оттуда.
4. Да, дает, ваш бэкэнд в данном случае (в случае православного простого SPA) превращается в обертку для БД (очень условно, тапками не кидайте, всякое бывает, я знаю).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Gmail и яндекс.музыука - точно spa.

Про целиком весь вконтакт не уверен, но если у вас музыка не прерывается при смене страниц, то это не магия, а SPA - т.е. на самом деле полная перегрузка страницы не происходит, а при смене url перерисовывается только часть страницы.

Свой роутер можно написать, но если он не круче какого-то из популярных, то стоит задуматься о целесообразности.
Ответ написан
Комментировать
@LoveCodeandCoffe
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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