【发布时间】:2020-03-10 07:49:36
【问题描述】:
我在我的项目中使用Vue 和Apollo 来查询GraphQL 端点。一切都很好,但我想开始编写通用组件以简化和加快开发。
问题是,在大多数情况下,我使用Smart Query 系统。 例如,我使用:
apollo: {
group: {
query: GROUP_QUERY,
variables () { return { id: this.groupId } },
skip () { return this.groupId === undefined },
result ({ data }) {
this.form.name = data.group.name
}
}
}
GROUP_QUERY 就是:
const GROUP_QUERY = gql`
query groupQuery ($id: ID) {
group (id: $id) {
id
name
usersCount
userIds {
id
username
}
}
}
`
所以我的 apollo 智能查询中的 group 变量与查询本身 group (id: $id) 具有相同的名称。正是这种机制对于我试图实现的目标来说非常烦人。有没有办法避免这种默认机制?
例如,我希望能够提供一个通用名称,例如 record,对于可能返回多条记录的查询,它会是 records。
有了它,我就可以制作在record 或records 上运行的通用组件或mixin。
或者我是否必须将我的所有查询重命名为 record 和 records,如果稍后出现错误消息进行故障排除,这会很烦人?
或者也许还有其他方法可以实现这一点,而我没有考虑过?
提前致谢。
【问题讨论】:
标签: vue.js vue-apollo