Jekins
@Jekins
Front-end developer

Целесообразно ли использовать Angular 4 на классическом PHP сайте, а не в роли SPA?

Всем доброго времени суток.

Общая ситуация:
Angular 4 прекрасно справляется со SPA приложениями, это ясно понятно. Но у нас имеется очень большой сайт, на котором примерно 40% страниц продвигаются в поисковиках и зависимы от СЕО, а остальные 60% являются сервисными, типо личного кабинета и других подобных вещей, которые доступны только после авторизации.
Весь сайт стоит на самописном PHP фреймворке, поэтому гибкости хватает на внедрение сумасшедших идей, а на фронте работает jquery+knockout. СЕО страницы рендерятся на сервере, а сервисные knockout`ом используя ajax запросы, обращаясь к API (есть полноценное апи со всем необходимым). У нас много форм и различных полей/селектов, которые сейчас работают по ajax`у c API, они находятся и на тех и на других страницах.

Что хотим:
Мы хотим унифицировать фронтенд и привести его к одному знаменателю, возможно избавиться от jquery и knockout`а и заменить их на Angular 4, так как это позволит более удобно манипулировать данными поступающими по api и выводить/изменять/удалять/создавать их.

Вопрос:
На сколько вообще целесообразно использоваться Angular на классическом пхпешном сайте? Ведь как понимаю, он рассчитан на то, что в рамках SPA он один раз долго грузится, а потом уже можно быстро юзать приложение, но как будет на обычном сайте? Не получится ли что при каждом переходе на новую страницу, мы будем долго грузить заново весь ангуляр?
И да, зная как устроен ангуляр (единая взаимосвязная система), пока с трудом понимаю, как его можно внедрять на такой сайт, но очень уж хочется)))
  • Вопрос задан
  • 2426 просмотров
Решения вопроса 1
Вы же сами всё верно написали.
Если только вы не имели в виду и страницы, которые сейчас рендерятся на сервере для поисковиков, перевести на Ангуляр - это ерунда (бессмысленно вообще и через жопу в частности).
Т.е. то, что у вас сейчас на jQ+KO - можно и переписать, но вряд ли это какой-то выигрыш даст кроме того, что станет "стильно модно молодёжно".. и геморройно..
И кстати, если уж всё равно захотите переписать по-современному, очень рекомендовал бы выкинуть Ангуряр из кандидатов, и в первую очередь смотреть на Vue.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Оставьте сайт (как он есть сейчас) на обычном PHP и отдельно создайте подгружаемые раздельно библиотеки обработчиков унифицированных блоков на нативном JS (без всяких JS-библиотек , типа jquery и подобных).

Как только унифицированный блок помещён на страницу (унифицированная форма, или нужна анимация, обработка ввода и отправки данных и т.д.) - подключайте нужную библиотеку (на стороне PHP, которая является обработчиком этого блока) и динамически "цепляйте" обработчик (класс обработки логики событий для этого блока) к нему при инициализации страницы (на стороне клиента).

Не забудьте включить кэширование статики для браузера (заголовки, отдаваемые сервером).

PS: Не нужно создавать трудности там, где их можно избежать.
Ответ написан
@denismaster
SEO возможно с использованием серверного пререндеринга и Angular Universal.

А по скорости загрузки - достаточно большой сайт с использованием Lazy Loading и Ahead Of Time грузится вполне себе быстро, за секунду.

Советую вам попробовать, возможно, у вас получится полностью перейти на SPA=)
Ответ написан
@Oleg-Ukraine
Посмотрите Vue.js у меня такая же ситуация. Angular хорош как spa, Vue отлично можно вкраплять частями в проект и вы его начнете использовать за вечер
Ответ написан
Комментировать
Для таких целей лучше взять React, вам не нужно хранить сложный стейт на фронте, а просто нужна удобная VM библиотека. Можно конечно и ангуляр взять, там core не очень здоровый, но всё равно куча всего останется неиспользуемого.
Ответ написан
@ryzhak
понемного функционал переписывайте на angular2+

делайте как upwork, у них каждая страница(сообщения, профиль, поиск заказов и т.д.) это отдельное angular приложение
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы