多天搜索角度通用后,我发现缺少实际 ServerSideRendering 的工作原理。
让我引导您解决我的问题并帮助我澄清一些模糊点。
有很多指南告诉你如何设置 SSR 要注意什么,比如不使用jquery访问DOM。
他们都没有真正展示角度通用在幕后的实际工作方式,尤其是当您访问外部API时。
我希望普通的SSR应用程序能够在服务器上运行时创建一些html,然后加载html,直到客户端下载 javascript 代码。
但是在使用外部api 的情况下会发生什么?(这是一种非常常见的情况)
我们的应用程序的服务器版本是否真的调用从api返回真实数据,用html渲染?还是会发生其他事情?
同样在外部api的情况下,通过路由解析器调用。在这种情况下,SSR可能吗?这意味着我们的应用程序必须等待api响应。
答案 0 :(得分:4)
当使用angular universal时,SSR进程实际上会生成浏览器将下载的html,并带有一些内联css,以便快速呈现页面。之后,浏览器将为您的角应用程序下载JS文件,此时,将发生转换,之后客户端JS应用程序将获得控制权。
您可以使用外部API。如果您在角度代码中调用了API(例如,在组件init上),那么该调用将在服务器端执行;意味着angular universal将等待该调用完成,以便它可以使用检索到的数据生成页面的html
答案 1 :(得分:0)
还要确保调用的是相同的 API。
这是不同的路线: