Javascript Apollo客户端-当查询';什么是变量变化?

Javascript Apollo客户端-当查询';什么是变量变化?,javascript,reactjs,graphql,apollo,Javascript,Reactjs,Graphql,Apollo,我想探索在一个请求中获取页面所需的所有数据的模式。假设我有一个用户配置页面,它需要一个团队列表来分配用户,以及一个用户可以拥有的角色列表。我使用下面的查询来获取用户以及所有可用角色和团队的第一页 import { gql } from "@apollo/client"; const listUser = gql` fragment listUser on Query { users(page: $page, per: $per) { edges { no

我想探索在一个请求中获取页面所需的所有数据的模式。假设我有一个用户配置页面,它需要一个团队列表来分配用户,以及一个用户可以拥有的角色列表。我使用下面的查询来获取用户以及所有可用角色和团队的第一页

import { gql } from "@apollo/client";

const listUser = gql`
  fragment listUser on Query {
    users(page: $page, per: $per) {
      edges {
        node {
          id
          name
          title
          avatar
        }
      }
      pageInfo {
        count
      }
    }
  }
`;

const roleFragment = gql`
  fragment roleFragment on Query {
    roles {
      name
      id
    }
  }
`;

const teamsFragment = gql`
  fragment teamsFragment on Query {
    teams {
      nodes {
        id
        name
        manager {
          name
        }
      }
    }
  }
`;

export const getUserConfig = gql`
  query getUserConfig($page: Int, $per: Int) {
    ...listUser
    ...roleFragment
    ...teamsFragment
  }
  ${listUser}
  ${roleFragment}
  ${teamsFragment}
`;
我这样使用它(使用graphql codegen生成):


这非常有效,允许我在一次往返中获取页面所需的数据。但是,每当我为用户更改页面变量(显然要转到下一页),它都会重新蚀刻所有内容。有没有一种方法可以这样做,使它只重新蚀刻已更改的片段?还是有更好的模式来实现我的目标?谢谢

不使用useQuery挂钩,您可以直接使用直接查询初始数据,然后在页面的子组件中订阅数据子集的更新


您可以查看一系列不同客户端方法的示例代码。

不使用useQuery挂钩,您可以直接使用直接查询初始数据,然后在页面的子组件中订阅数据子集的更新

您可以查看一系列不同客户端方法的示例代码

const { loading, error, data, refetch } = useGetUserConfigQuery({
 variables: {
   page: 1,
   per: 7,
  }
});