javascript - Angular 7 SSR,应用组件 ngOnInit() 多次调用
问题描述
我有一个带有大约 30 个模块的 angular 7 应用程序。我正在获取用户详细信息以在app.component.ts
整个应用程序中使用它,但我突然注意到用户详细信息 API 在 1 次加载时运行多次。
ngOnInit()
在我输入日志后,app.component.ts
我发现日志正在打印多次,但它只发生在浏览器上的服务器端渲染上,它只呈现一次。
知道为什么ngOnInit()
不止一次打电话吗?
解决方案
Angular SSR 的概念是,在第一次加载页面/URL 时,它通过服务器呈现,然后在客户端传输数据。所以从技术上讲,它调用所有组件,服务在该页面/URL 上存在两次。
您可以使用条件 isPlatformBrowser 和 isPlatformServer 方法,因此您可以只在服务器端呈现所需的部分。我们仅在 SSR 上呈现与 SEO 优化相关的特定内容。
推荐阅读
- reactjs - 触发 react-admin SelectInput 字段的动态值集更改
- javascript - 如何从我的 chrome 扩展程序的后台脚本打开电话链接?
- python-3.x - Python:Numba 在使用签名时无法识别无
- python - 使用 ctypes 使用 Ctrl-C 中断 Python C 扩展
- javascript - 带数字的 Else If 语句
- php - 在jquery中获取检查未检查的值
- powershell - 使用 Powershell 脚本查找 TpmPin 的 bitlocker 值
- angular - 谷歌图表注释标签
- spring - 如何使用adminfaces spring boot master?
- azure - Azure 边缘集线器消息到期未触发回调