Angular universal starter:服务TransferState的目的是什么?

时间:2017-08-04 14:33:45

标签: angular angular-universal

我必须承认,我不了解perl应用中TransferState应用Angular universal starter}中服务的目的和目标。

我猜测它是在客户端和服务器之间共享数据,但我不确定哪种情况适用或应该应用。

有人确实理解并能用一个简单的例子向我解释目的吗?

提前谢谢

2 个答案:

答案 0 :(得分:0)

GitHub Issue answering your question.

我有两个猜测。

  1. 来自Universal Gotchas的第三个要点 - 提到的示例可能是TransferModule
  2. Preboot.js增强功能,因为它现在不支持API调用

答案 1 :(得分:-1)

TransferState当前未在https://universal.angular.io/api/universal/index.html#typedoc-main-index中列出,这可能表明该功能正在进行中并且不打算使用,它不打算直接使用(例如从库本身内部调用) ),或者它可能是一个简单的遗漏,或者可能因某些其他原因而被排除......

然而,在查看TransferState的代码时,除了以下情况外,它似乎非常稀疏:

https://github.com/angular/universal-starter/blob/master/src/modules/transfer-state/server-transfer-state.ts

https://github.com/angular/universal-starter/blob/master/src/modules/transfer-state/transfer-state.ts

这里的主要线索似乎是在服务器文件中包含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;
  }
<{1>}文件中的

。应该可以像这样调用这个函数:

transfer-state.ts

为了将给定输入的状态转换为JSON数据。这似乎是许多预先存在的功能的重复,这也可能是它未在文档中列出的原因。