Discuz! Board

用户名  找回密码
 立即注册
帖子
热搜: 活动 交友 discuz
查看: 509|回复: 0

其中的所有内容们不喜欢过多

[复制链接]

2

主题

0

回帖

8

积分

新手上路

Rank: 1

积分
8
发表于 2023-11-8 14:16:32 | 显示全部楼层 |阅读模式
想这使您能够构建页面谈论视口,但它是首屏之上的所有内容,您可以优先考虑,加载该内容,然后再加载所有内容向下。我们已经讨论了很多关于查询数据的内容。API 的主要工作之一是将新的和修改的数据发送回服务器以进行持久化。您之前简单提到过突变。这就是 GraphQL 用于将数据写回服务器的术语吗?

前夕:确切地。因此,我们想要对数据进行的任何类型的更改,我们想要写回服务器的任何内容,这些都是突变,这些都就像查询一样,它们被命名为存在于服务器上的操作。那么你可以想一下我们希望用户 美国电话号码表 能够做的所有事情是什么?代表那些有突变的人。然后再次在服务器上编写使这些东西工作的所有函数。

德鲁:这就像查询数据一样简单吗?调用突变也那么容易吗?

前夕:是的。它是查询语言的一部分。它看起来几乎一模一样。唯一的区别是,我想查询会采用过滤器。因此,突变在查询本身中采取了看起来像过滤器的东西。但这些负责实际更改数据。发送的电子邮件和密码可能会带有突变,然后服务器会收集该突变,然后使用该突变来授权用户。

德鲁:因此,就像以前一样,您在后端创建一个解析器来处理该问题并执行任何需要执行的操作。写入数据时的一个常见情况是您想要提交更改,然后重新查询以获取其当前状态。GraphQL 有一个很好的工作流程吗?

前夕:它有点存在于突变本身中。因此,很多时候在创建模式时,您将创建突变操作。我将坚持登录,输入电子邮件和密码。突变本身也带来了一些东西。因此它可以返回像布尔值这样简单的东西,这要么顺利,要么失败,或者它可能返回一个实际类型。所以你经常会看到像登录突变这样的突变,也许它会返回一个用户。因此,一旦用户登录,您就可以获得有关用户的所有信息。或者您可以创建一个自定义对象类型,为您提供该用户以及用户登录的时间,也许还可以在返回对象中提供有关该事务的更多元数据。再说一遍,这取决于您的设计,但该模式确实已融入 GraphQL 中。

德鲁:这一切听起来都很棒,但每种技术选择都需要权衡。使用 GraphQL 有哪些缺点?有没有什么情况下它是一个非常糟糕的选择?

前夕:我认为 GraphQL 可能会遇到困难的地方是创建一个一对一的映射 -



前夕:… 困难在于创建表格数据的一对一地图。假设您有一个数据库表,其中包含各种不同的字段,并且我不知道特定类型上有数千个字段,诸如此类,可以很好地表示该类型的数据使用 GraphQL,但有时当您运行一个进程来生成该数据的架构时,您会在架构中遇到与数据库中相同的问题,这可能是超出客户端范围的数据太多实际上需要。所以我认为这些地方存在潜在的问题。我和那些根据他们的数据自动生成模式的人交谈过,它已经变成了一百万行长的模式或类似的东西,只有成千上万行模式代码。这就是它变得有点棘手的地方,就像这作为人类可读的文档有多大用处?

前夕:是的。因此,在与客户打交道的任何情况下,就对每种不同类型的数据进行建模而言,它都非常适合,但如果您的数据源太大,就会变得有点棘手。

德鲁:因此,听起来无论在哪里,只要你仔细策划现场响​​应并更多地手工完成,你都可以获得非常强大的结果。但如果你因为刚刚有了一个巨大的架构而自动生成东西,那么它可能会变得有点笨拙。

前夕:是的。我认为人们正在倾听我的观点并且不同意我的观点,因为也有很好的工具可以做到这一点。但我认为 GraphQL 真正闪光的地方是将逻辑抽象到服务器的步骤,让前端开发人员可以自由地定义他们的组件或前端数据需求,并真正作为一个团队管理架构。

回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2025-1-23 18:53 , Processed in 0.041882 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表