为什么客户端获取的数据出现在 Angular SSR/universal 的视图源中?

Why does the client fetched data appear in view source for Angular SSR/universal?

有人可以向我解释一下为什么在您进行客户端导航时获取的数据会出现在视图源中吗?

我有这个代码

  ngOnInit() {
    this.users$ = this.http.get('api/users');
  }

我正在客户端上使用 routerLink="my-component" 导航到该组件。

运行项目npm run dev:ssr

调用是在客户端而不是服务器上进行的,但是不知何故,数据在页面源中。

我从事过 VUE SSR 项目,当客户端导航启动时,如果您检查页面源,您不会在那里找到数据,但我在 angular 中看到它出现了。这是什么原因?

谢谢

在 Angular 进行大量调查后,通过平台浏览器、平台服务器、核心、传输状态、开发工具中的断点的控制台日志,我意识到浏览器是“问题”。默认情况下发生了一些我不知道的事情。

发生的事情是,当点击 view-source:http://localhost:4200/my-component 之类的查看源时,如果该页面从未从服务器加载,浏览器将对服务器进行 http 调用并在查看源中加载数据。然后缓存该视图源。

如果您再次在客户端转到该路由,并再次调用查看源代码,浏览器会为您提供缓存版本,这就是您在服务器控制台中看不到任何内容的原因。

当我玩这个应用程序时,我一定是从服务器加载了所有页面,然后在客户端导航时,我得到了视图源的缓存版本,但没有看到任何服务器调用。