Угловой универсальный и внешний API

После много дней поиска угловой универсальный я обнаружил недостаток информации о том, как на самом деле работает ServerSideRendering .
Позвольте мне помочь вам разобраться в своих проблемах и прояснить некоторые размытые пятна.

Существует довольно много руководств, рассказывающих, как настроить ССР, с чем нужно быть осторожным, например, не получать доступ к DOM или не использовать jquery. Ни один из них на самом деле не показывает, как angular universal работает за кулисами, особенно когда вы обращаетесь к внешнему api.

Я ожидал, что обычное приложение SSR просто запустится на сервере, создаст некоторый html, а затем загрузит html, пока клиент не загрузит код javascript. Но что происходит в случае использования внешний API? (Что является очень распространенным сценарием). Делает ли серверная версия нашего приложения реальные вызовы, возвращая реальные данные из api для рендеринга с помощью html? Или еще что-то происходит?

Также в случае внешнего API, который вызывается через преобразователь маршрута. Возможно ли в этом случае SSR? Это означает, что наше приложение в любом случае должно ждать ответа api.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
7
0
4 321
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

При использовании angular universal процесс SSR фактически сгенерирует html, который загрузит браузер, с некоторым встроенным CSS, чтобы страница отображалась быстро. После этого браузер загрузит файлы JS для вашего приложения angular, и на этом этапе происходит переход, после которого клиентское приложение JS берет на себя управление.

Вы можете использовать внешние API. Если у вас есть вызов API в коде angular (например, при инициализации компонента), то этот вызов будет выполняться на стороне сервера; означает, что angular universal будет ждать завершения этого вызова, чтобы использовать полученные данные для создания html страницы

Итак, в этом случае вы можете использовать prerender, чтобы универсальный ответ api prerenders?

Dionisis K 13.03.2018 13:32

Предварительный рендеринг в основном полезен, если ваш контент не меняется очень часто (при его изменении вы должны удалить кешированные файлы html)

David 13.03.2018 13:58

Есть ли способ использовать учетные данные браузера, такие как {withCredentials: true}, для этого API на стороне сервера? Мы обычно получаем просто 403.

Amos47 02.07.2018 18:41

почему это не мой случай? Я делаю вызовы API в init и жду наблюдаемого, но html не отображается, когда вызов заканчивается ...

BruneX 23.12.2019 17:15

Также убедитесь, что вызывается тот же API.

Это разные маршруты:

  1. api /
  2. api

Другие вопросы по теме