首页 > 解决方案 > Angular 7 SSR,应用组件 ngOnInit() 多次调用

问题描述

我有一个带有大约 30 个模块的 angular 7 应用程序。我正在获取用户详细信息以在app.component.ts整个应用程序中使用它,但我突然注意到用户详细信息 API 在 1 次加载时运行多次。

ngOnInit()在我输入日志后,app.component.ts我发现日志正在打印多次,但它只发生在浏览器上的服务器端渲染上,它只呈现一次。

知道为什么ngOnInit()不止一次打电话吗?

标签: javascriptangularserver-side-renderingangular-universal

解决方案


Angular SSR 的概念是,在第一次加载页面/URL 时,它通过服务器呈现,然后在客户端传输数据。所以从技术上讲,它调用所有组件,服务在该页面/URL 上存在两次。

您可以使用条件 isPlatformBrowser 和 isPlatformServer 方法,因此您可以只在服务器端呈现所需的部分。我们仅在 SSR 上呈现与 SEO 优化相关的特定内容。


推荐阅读