Angular Universal-为客户端缓存的服务器端请求

Ste*_*vik 5 caching server-rendering angular-universal angular

我看过很多有关在有角度的通用应用程序中为客户端缓存数据的文章,因此它不会在服务器上已经解决的客户端上重复请求。

我只是不知道如何将数据从服务器传输到客户端。我是否将JSON注入预渲染的HTML或缺少其他内容?

Den*_*nis 5

从角度5开始,在角度铁心内部有一个名为的模块TransferStateModule可以为您完成此任务。https://angular.io/api/platform-b​​rowser/TransferState

您只需将API响应与StateKey(基本上就像一个字符串)一起添加到服务器端的缓存中,就可以在将index.html文件发送到客户端之前以Json的形式将其作为Json写入DOM,在那里您需要StateKey和从Json获得结果。

在官方的通用入门工具包中,您可以查看注册的位置和内容:https : //github.com/angular/universal-starter


更新Angular 6

您不需要自己设置状态键。新的TransferStateModule具有HttpClient拦截器,可自动设置密钥!如果您想拥有更多控制权,仍然可以自己做,但是现在就像添加模块一样简单(默认情况下,最新的通用入门工具包已将其导入!)