我已经看到了许多有关Angular Universal Apps中客户端数据的文章,因此它不会复制已经在服务器上解决的客户端的请求。
我只是没有得到如何将数据从服务器传输到客户端的方式。我是将JSON注入预渲染的HTML还是我缺少其他东西?
从Angular 5开始,Angular Core的模块称为TransferStateModule
,可以为您做到这一点。https://angular.io/api/platform-browser/transferstate
您只需将API响应与statekey一起添加到Serverside上的缓存(基本上就像字符串(,它将其写入DOM时,将json作为index.html文件发送给客户StateKey并从JSON获得结果。
在官方通用入门套件中,您可以看到在哪里和要注册的内容:https://github.com/angular/universal-starter
更新Angular 6
您无需自己设置状态密钥。新的TransFerstateModule具有HTTPCLIENT Interceptor,可以自动设置密钥!如果您想拥有更多的控制权,您仍然可以自己执行此操作,但是现在就像添加模块一样容易(默认情况下最新的通用入门套件已导入!(