与功能请求相关的@angular/*包有哪些?
- 无响应*
描述
我喜欢Angular中的SSR,TransferState也很好用。但是你总是需要注入PlatformID,如果你在服务/组件中从服务器获取数据,那么你的服务运行速度比组件启动速度快。那么会发生什么呢?你会获取两次数据。Transferstate获取客户端的Key的时间太晚了。
建议的解决方案
也许像ngOnServer这样的钩子会很好地仅用于服务器调用,无需注入PlatformID。这样你就可以使用afterRender来捕获客户端的Key。目前,你必须拆分我的transferService并首先追赶一个等待键的Observable。
考虑过的替代方案
TransferState本身可能已经检查过自己,并使用一个Observable等待客户端上的JSON。AfterContentInit生命周期没有注册JSON Data脚本id="ng-state"和StateKey。对于像JSONDataready这样的组件,一个新的钩子可能会真的很好。
1条答案
按热度按时间8oomwypt1#
当在Angular应用程序中使用服务器端渲染(SSR)启用水分时,通过HttpClient发出的HTTP调用默认仅在服务器上进行。这意味着数据获取和API请求在初始渲染过程中由服务器端处理。