Apollo客户端通过从服务器接收的对象覆盖现有对象。
创始人
2024-09-09 11:30:22
0

在Apollo客户端中使用updater函数来手动管理缓存,以避免覆盖现有对象。这可以通过以下方式完成:

  1. 在查询中启用缓存
const gqlQuery = gql`
  query MyQuery($id: ID!) {
    getMyData(id: $id) {
      id
      name
      age
    }
  }
`;

const { data } = useQuery(gqlQuery, {
  variables: { id: someId },
  fetchPolicy: "cache-first",   // 启用缓存
});
  1. 使用updater函数来手动更新缓存
const gqlMutation = gql`
  mutation UpdateMyData($input: MyInput!) {
    updateMyData(input: $input) {
      id
      name
      age
    }
  }
`;

const [updateMyData] = useMutation(gqlMutation, {
  update(cache, { data: { updateMyData: newData } }) {
    cache.modify({
      fields: {
        getMyData(existingData) {
          const updatedData = cache.writeFragment({
            fragment: gql`
              fragment MyData on MyType {
                id
                name
                age
              }
            `,
            data: newData,
          });
          return { ...existingData, ...updatedData };
        },
      },
    });
  },
});

在更新操作中,我们使用updater函数来修改缓存,以便将新数据合并到现有缓存中而不是覆盖它。

这样, Apollo客户端就会自动尝试使用缓存来提高性能,并且在需要时手动更新缓存,以避免覆盖现有对象。

相关内容

热门资讯

透视了解!wpk俱乐部有没有辅... 透视了解!wpk俱乐部有没有辅助,wpk德州局怎么透视,扑克教程(有挂脚本);进入游戏-大厅左侧-新...
透视透视!wpk是真的还是假的... 透视透视!wpk是真的还是假的,wpk有辅助器吗,AI教程(有挂揭秘);1、构建自己的wpk是真的还...
透视ai代打!wpk俱乐部辅助... 透视ai代打!wpk俱乐部辅助器,wpk透视是真的假的,透牌教程(有挂教程)1、wpk透视是真的假的...
透视神器!德州hhpoker是... 透视神器!德州hhpoker是真的吗,hhpoker真的假的,细节方法(有挂技巧)1、德州hhpok...
透视智能ai!wpk透视插件,... 透视智能ai!wpk透视插件,wpk控制牌是真的吗,AI教程(有挂黑科技)一、wpk控制牌是真的吗软...
透视透视!hhpoker开挂教... 透视透视!hhpoker开挂教程,hhpoker透视脚本下载,必赢方法(有挂揭秘)1、hhpoker...
透视透视!wpk辅助哪里买,w... 透视透视!wpk辅助哪里买,wpk插件,科技教程(有挂细节)1、许多玩家不知道wpk辅助哪里买辅助软...
透视工具!购买的wpk辅助在哪... 透视工具!购买的wpk辅助在哪里下载,wpk有作弊吗,新2025版(有挂详情);1、打开软件启动之后...
透视模拟器!如何判断wpk辅助... 透视模拟器!如何判断wpk辅助软件的真假,wpk模拟器是什么,曝光教程(有挂规律)1、如何判断wpk...
透视教学!wpk俱乐部辅助器,... 透视教学!wpk俱乐部辅助器,wpk作弊是真的吗,透视教程(有挂详情)1、wpk作弊是真的吗系统规律...