我看过很多关于在角度通用应用程序中缓存客户端数据的文章,因此它不会重复客户端上已在服务器上解析的请求。
我只是不明白数据如何从服务器传输到客户端。我是否将 JSON 注入到预渲染的 HTML 中,还是缺少其他内容?
从 Angular 5 开始,Angular Core 内部有一个模块,称为TransferStateModule
这会为你做这件事。https://angular.io/api/platform-browser/TransferState https://angular.io/api/platform-browser/TransferState
您只需将 API 响应与 StateKey(基本上就像一个字符串)一起添加到服务器端的缓存中,在将 index.html 文件发送到客户端之前,它会以 Json 形式写入 DOM,您需要提供 StateKey 并从 Json 中获取结果。
在官方通用入门套件中,您可以查看注册地点和内容:https://github.com/angular/universal-starter https://github.com/angular/universal-starter
更新角度 6
您不需要自己设置状态密钥。新的 TransferStateModule 有一个 HttpClient 拦截器,可以自动设置密钥!如果您想要更多控制权,您仍然可以自己完成,但现在只需添加模块即可轻松完成(最新的通用入门套件默认导入它!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)