我不得不承认,我不明白在Angular universal starter
应用程序(https://github.com/angular/universal-starter)中服务TransferState
的目的和目标。有角的通用启动器:Wha't服务TransferState的目的是什么?
我猜它是在客户端和服务器之间共享数据,但我不确定在哪种情况下会应用或应该应用。
有人确实理解并能够用一个简单的例子来解释我的目的吗?
Thx提前
我不得不承认,我不明白在Angular universal starter
应用程序(https://github.com/angular/universal-starter)中服务TransferState
的目的和目标。有角的通用启动器:Wha't服务TransferState的目的是什么?
我猜它是在客户端和服务器之间共享数据,但我不确定在哪种情况下会应用或应该应用。
有人确实理解并能够用一个简单的例子来解释我的目的吗?
Thx提前
GitHub Issue answering your question.
我有两个猜测。从Universal Gotchas
TransferState不是目前在https://universal.angular.io/api/universal/index.html#typedoc-main-index列出其可以指示该特征在正在进行的工作,而不是意在被使用时,它不适合直接使用(例如,从所谓的库本身)内,或者它可能是一个简单的遗漏,也可以排除某些其他原因......
然而,在通过为TransferState
这似乎是很稀疏与异常的代码看:
和
这里的主要线索似乎是在服务器上的文件中包含的import * as serialize from 'serialize-javascript';
,和许多不同的.map
声明,其他的暗示作为该文件的目的之中的。
从粗略的检查看来,它似乎只是将一个文件或io类型的状态转换为另一个文件的一小段代码。例如代码:
toJson(): any {
const obj = {};
Array.from(this.keys())
.forEach(key => {
obj[key] = this.get(key);
});
return obj;
}
在transfer-state.ts
文件中。它应该能够调用此函数,如下所示:
myFile.transferState.toJson();
为了给定的输入的状态转移到JSON数据。这似乎与许多现有功能相同,这也可能是文档中未列出的原因。
THX挖进去和解释。当我运行这个'通用启动器应用程序'时,页面在'head'中呈现,代码如下:'......我只是问那么我自己呢,也许这里的目标是在客户端和服务器端共享数据,比如用于国际化的浏览器语言? –
这很有趣。告诉你什么,我会在我自己的网站上安装Angular Universal,然后稍微挖一下,看看我能否找到更多的信息给你。 –
这会很酷;)在我身边,我也尝试将我的静态网站和我的动态应用程序打包到单个应用程序中,如果这样做我理解了一些内容,将会过帐 –
很酷的thx为指出,也听说,分别在阴沟通道它只用于执行http请求在服务器端。我还没有和我的项目一起执行我的http请求。我很快就会做出确认,并且关闭此问题 –
现在可以确认,如果没有使用TransferState或任何其他解决方案,http查询将在服务器和客户端运行。现在我应该试着弄清楚TransferState是否仍然是解决这个问题的实际解决方法,或者是否有官方的方法 –