自定义查询

对于大多数简单情况,你应该能够利用TinaCMS客户端生成的查询来进行数据获取:

在更高级的情况下,你可能希望对底层的GraphQL查询有更多的控制。在这些情况下,你有两个选择:

  • 通过编写自定义查询来扩展自动生成的client.queries
  • 使用client.request,并编写内联查询。

扩展自动生成的client.queries

可以通过向tina/queries目录添加查询来扩展客户端以执行更高级的查询(包括一次查询多个根集合)。该目录中以gqlgraphql结尾的所有文件都将被添加到客户端中。

TinaCMS生成自定义的GraphQL片段以用于自定义查询,这样当模式更新时查询就不需要更新。

注意:这些片段可以在tina/__generated__/frags.gql中查看

tina/queries/postWithNav.gql的示例:

要在你的GraphQL文件中获得自动补全功能,请添加一个指向tina/__generated__/schema.gqltina/__generated__/frags.gqlgraphql.config.js

注意:片段的命名方式是使用集合名称(首字母大写)后跟“Parts”

我们在这里使用了PostPartsNavParts片段。对于每个集合,此片段在模式更新时生成并更新。你可以在/tina/__generated__/frags.gql中查看你的模式的任何可用片段。

一旦查询被添加,客户端将更新其类型,以便可以用来请求新查询。

编写内联查询

如果你想完全避免在客户端上使用类型,你也可以使用client.request函数编写一个内联查询。

有关编写自定义查询的更多信息,请查看查询参考文档

Last Edited: September 18, 2025