在教程中
显示了new HttpLink
语法,但在官方文档中
功能createHttpLink
已应用。
这两个来源均未描述这两种方法之间的差异。
答案 0 :(得分:2)
两者之间没有根本区别。
如果您查看apollo-link-http
包源here,则可以看到导出的createHttpLink
方法返回了ApolloLink
类的新实例,并使用您的选项进行了初始化传递给createHttpLink
(第62-194行)。
在同一文件的末尾,您可以看到该软件包还导出了HttpLink
类,该类扩展了ApolloLink
类(第256-261行):
export class HttpLink extends ApolloLink {
public requester: RequestHandler;
constructor(opts?: HttpLink.Options) {
super(createHttpLink(opts).request);
}
}
从上面的代码中可以看到,当通过创建HttpLink
类的新实例来创建apollo http链接时,传递给构造函数的选项在内部传递给createHttpLink
,它返回如上所述的ApolloLink
实例,并且该实例的RequestHandler
传递到(即复制到)新的HttpLink
实例的父实例,该父实例也是{{ 1}}(请查看第96-124行here,以了解ApolloLink
自己的构造函数)。
请注意,ApolloLink
程序包自己的docs不会不提及apollo-link-http
语法,因此以后我会坚持使用new HttpLink
语法兼容性。