想象一下,我有这个“架构”:
type User {
id: ID!
name: String!
}
现在,在我的一个组件(A)中,我需要用户id
;在另一个组件(B)中,我需要 userid
和 user name
。
我现在正在做的是在A Component
仅请求 ID 时进行用户查询。在B Component
我进行另一个用户查询请求 ID 和名称。
有一段查询总是相同的:
// Component A request
const query = gql`{
User(id: 1) {
id
}
}`
// Component B request
const query = gql`{
User(id: 1) {
id
name
}
}`
这User(id:1){}
是相同的,建议更改的是响应参数。对此的正确方法是什么?复制查询的固定部分是否正确?
我们的问题是,如果将来 Schema 发生变化,我们将需要重构所有位置的所有查询。我们想要的是一种将其集中化并对其进行参数化的方法,以便可扩展以响应 Schema 更改。
我的一个队友制作了一个函数,它接收一个字符串并将其放在 GQL 查询中。我不喜欢这种做法。你怎么看?