自定义查询
对于大多数简单情况,你应该能够利用TinaCMS客户端生成的查询来进行数据获取:
在更高级的情况下,你可能希望对底层的GraphQL查询有更多的控制。在这些情况下,你有两个选择:
- 通过编写自定义查询来扩展自动生成的
client.queries。 - 使用
client.request,并编写内联查询。
扩展自动生成的client.queries
可以通过向tina/queries目录添加查询来扩展客户端以执行更高级的查询(包括一次查询多个根集合)。该目录中以gql或graphql结尾的所有文件都将被添加到客户端中。
TinaCMS生成自定义的GraphQL片段以用于自定义查询,这样当模式更新时查询就不需要更新。
注意:这些片段可以在tina/__generated__/frags.gql中查看
tina/queries/postWithNav.gql的示例:
要在你的GraphQL文件中获得自动补全功能,请添加一个指向tina/__generated__/schema.gql和tina/__generated__/frags.gql的graphql.config.js。
注意:片段的命名方式是使用集合名称(首字母大写)后跟“Parts”
我们在这里使用了PostParts和NavParts片段。对于每个集合,此片段在模式更新时生成并更新。你可以在/tina/__generated__/frags.gql中查看你的模式的任何可用片段。
一旦查询被添加,客户端将更新其类型,以便可以用来请求新查询。
编写内联查询
如果你想完全避免在客户端上使用类型,你也可以使用client.request函数编写一个内联查询。
有关编写自定义查询的更多信息,请查看查询参考文档。