Gaj*_*jus 155 graphql falcor relayjs
GraphQL由类型系统,查询语言和执行语义,静态验证和类型内省组成,每个都在下面概述.为了指导您完成这些组件,我们编写了一个示例来说明GraphQL的各个部分.
- https://github.com/facebook/graphql
Falcor允许您通过虚拟JSON图表将所有远程数据源表示为单个域模型.无论数据位于何处,无论是在客户端的内存中还是通过服务器上的网络,您都可以采用相同的方式编码.
- http://netflix.github.io/falcor/
Falcor和GraphQL有什么区别(在Relay的背景下)?
Gaj*_*jus 127
我已经看到了角空集26:FalcorJS和角2,其中贾法尔·侯赛因回答如何GraphQL比较FalcorJS.这是摘要(释义):
genres[0..10].但它不支持开放式查询,例如genres[0..*].Jafar认为,在大多数应用程序中,从客户端到服务器的查询类型共享相同的形状.因此,具有特定且可预测的操作(如get和set)会暴露更多利用缓存的机会.此外,许多开发人员熟悉使用REST架构中的简单路由器映射请求.
最后的讨论解决了GraphQL带来的功能是否超过了复杂性.
Ove*_*Tim 78
我现在已经用两个库编写了应用程序,我可以同意Gajus帖子中的所有内容,但在我自己使用框架时发现了一些最重要的东西.
Yas*_*our 24
GraphQL背后的工程师之一Lee Byron在hashnode上做了一个AMA,当被问到这个问题时,这是他的回答:
- Falcor返回Observables,GraphQL只是值.对于Netflix如何使用Falcor,这对他们来说很有意义.他们在准备就绪时发出多个请求并显示数据,但这也意味着客户端开发人员必须直接使用Observables.GraphQL是一个请求/响应模型,并返回JSON,这很容易使用.Relay补充了Falcor在保持仅使用普通值时所呈现的一些动态.
- 输入系统.GraphQL是根据类型系统定义的,这使我们能够构建许多有趣的工具,如GraphiQL,代码生成器,错误检测等.Falcor更具动态性,这本身就很有价值,但限制了它的能力.这种事.
- 网络使用情况 GraphQL最初设计用于在甚至低端网络上的低端设备上运行Facebook的新闻源,因此它可以让您在单个网络请求中声明所需的所有内容,以最大限度地减少延迟.另一方面,Falcor经常进行多次往返以收集额外数据.这实际上只是系统简单性和网络控制之间的权衡.对于Netflix,他们还处理非常低端的设备(例如Roku棒),但假设网络将足以流式传输视频.
编辑:Falcor确实可以批量请求,使得关于网络使用的评论不准确.感谢@PrzeoR
Prz*_*eoR 21
更新:我在帖子中找到了非常有用的评论,我希望与您分享作为主要内容的补充内容:

关于缺少示例,您可以找到有用的awesome-falcorjs repo,有不同的Falcor CRUD用法示例:https: //github.com/przeor/awesome-falcorjs ...其次,有一本名为" 掌握全栈反应开发 "包括Falcor(学习如何使用它的好方法):
下面的原始帖子:
与Relay/GraphQL相比,FalcorJS(https://www.facebook.com/groups/falcorjs/)更加高效.
在我的简短摘要中:去找Falcor.在你的下一个项目中使用Falcor,直到你有一个庞大的预算和你团队的大量学习时间,然后使用RELAY + GRAPHQL.
GraphQL + Relay拥有巨大的API,您必须高效.Falcor拥有小型API,并且非常容易掌握任何熟悉JSON的前端开发人员.
如果您有一个资源有限的AGILE项目 - >那么请选择FalcorJS!
我的主观意见:FalcorJS在全栈javascript中更容易高效500%.
我还在我的项目中发布了一些FalcorJS入门套件(+更多全栈falcor的示例项目):https://www.github.com/przeor
更多技术细节:
1)当您使用Falcor时,您可以在前端和后端使用它们:
从'falcor'进口falcor;
然后基于.构建您的模型.
...你还需要两个易于在后端使用的库:a)falcor-express - 你使用它一次(例如app.use('/ model.json',FalcorServer.dataSourceRoute(()=> new NamesRouter ()))).资料来源:https://github.com/przeor/falcor-netflix-shopping-cart-example/blob/master/server/index.js
b)falcor-router - 你定义SIMPLE路由(例如route:'_ view.length').资料来源:https: //github.com/przeor/falcor-netflix-shopping-cart-example/blob/master/server/router.js
Falcor在学习曲线方面是小菜一碟.
您还可以看到比FB的lib更简单的文档,并查看文章" 为什么你应该关心falcorjs(netflix falcor) ".
2)Relay/GraphQL更像是一个巨大的企业工具.
例如,您有两个不同的文档分别谈论:
a)中继:https: //facebook.github.io/relay/docs/tutorial.html - 容器 - 路由 - 根容器 - 就绪状态 - 突变 - 网络层 - Babel中继插件 - GRAPHQL
API参考
中继
INTERFACES
RelayNetworkLayer
b)GrapQL:https://facebook.github.io/graphql/
这是你的选择:
简单的甜蜜和简短记录Falcor JS VERSUS巨大的企业级工具,具有GraphQL和Relay等长而高级的文档
正如我之前所说,如果你是一个掌握使用JSON概念的前端开发人员,那么Falcor团队的JSON图形实现是完成你的全栈开发项目的最佳方式.
简而言之,Falcor或GraphQL或Restful解决了同样的问题 - 提供了一种有效查询/操作数据的工具.
它们的不同之处在于它们如何呈现数据:
每当我们需要为用户提供数据时,我们最终会得到以下内容:客户端 - >查询 - > {层转换查询到数据操作} - >数据.
在使用GraphQL,Falcor和JSON API(甚至是ODdata)之后,我编写了自己的数据查询层.它更简单,更容易学习,与GraphQL更相同.
请查看:https:
//github.com/giapnguyen74/nextql
它还与featherjs集成,用于实时查询/变异. https://github.com/giapnguyen74/nextql-feathers
| 归档时间: |
|
| 查看次数: |
26940 次 |
| 最近记录: |