关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题

我使用基于版本 3.4.5(某客户正在使用)的 Schematics 创建了一个店面,并在 SSR 模式下运行它。
我在浏览器中访问 http://localhost:4000/。
【关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题】通过 Chrome 开发工具我知道主页的源代码是由 SSR 服务器成功生成了。
关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
文章图片

然而,即使在 SSR 模式下,我发现 /cms/pages OCC API 仍然是从客户端触发的。
关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
文章图片

关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
文章图片

在 SSR 服务器的 log 里,我没有发现 CSR fallback:
关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
文章图片

但是,在客户端,我仍然发现了这些 OCC API call:
关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
文章图片

即使我使用了如下代码:

ConfigModule.withConfig({ state: { ssrTransfer: { keys: { products: true, cms: true } } } });

只能确保客户端没有发送 product 相关的 API 调用。
关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
文章图片

解答
  • 对于产品 - 我猜状态已从 SSR 转移到 CSR。
  • 对于 cms - 我想无论我们是否在 ngrx 商店中,我们都会进行调用。 我们正在讨论的东西可能会在未来改进
默认情况下,Spartacus 在每次路由更改时重新加载 CMS 页面数据,无论它是否已经维护在 ngrx state 之中。 但是,客户可以通过 Spartacus 配置 routing.loadStrategy: RouteLoadStrategy.ONCE 对其进行不同的配置
它在 CmsPageGuard.shouldReload 方法中使用。
更多Jerry的原创文章,尽在:"汪子熙":
关于|关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
文章图片

    推荐阅读