Apollo是否会缓存来自查询组件的查询?
创始人
2024-09-09 13:01:28
0

Apollo不会缓存来自查询组件的查询。查询组件是在运行时根据请求动态生成的,每次请求都会创建一个新的查询组件实例。如果您想要缓存查询结果,可以在查询组件外部实现缓存逻辑。

以下是一个示例代码,演示如何在查询组件外部进行查询结果的缓存:

import { useQuery } from '@apollo/client';
import { useState, useEffect } from 'react';

// 定义一个全局的查询结果缓存对象
const queryCache = {};

function CachedQueryComponent() {
  // 定义查询的参数
  const queryVariables = {};

  // 定义查询的 GraphQL 查询语句
  const QUERY = `
    query MyQuery {
      // 查询内容
    }
  `;

  // 定义查询的 Hook
  const { loading, error, data } = useQuery(QUERY, {
    variables: queryVariables,
  });

  // 缓存查询结果
  useEffect(() => {
    if (!loading && !error) {
      queryCache[QUERY] = data;
    }
  }, [loading, error, data]);

  // 从缓存中获取查询结果
  const cachedData = queryCache[QUERY];

  return (
    
{loading &&

Loading...

} {error &&

Error: {error.message}

} {cachedData &&

Cached Data: {JSON.stringify(cachedData)}

} {data &&

New Data: {JSON.stringify(data)}

}
); }

在上面的示例中,我们创建了一个全局的查询结果缓存对象 queryCache。在查询组件的 useQuery 钩子中,我们通过 useEffect 监听 loadingerrordata 的变化,当查询完成且没有错误时,将查询结果存储在 queryCache 中。然后,我们根据需要从缓存中获取查询结果并展示。

请注意,以上代码仅为示例,您可以根据实际需求进行修改和优化。

相关内容

热门资讯

智星德州菠萝有挂吗!德州线上扑... 智星德州菠萝有挂吗!德州线上扑克辅助工具app,微扑克可以加入俱乐部,解密教程(有挂透明)是一款可以...
透视新版(wepoker)透明... 透视新版(wepoker)透明挂辅助安装(wepoke辅助插件)竟然真的有挂(详细透视教你攻略);1...
德扑ai助手!微扑克wpk安全... 德扑ai助手!微扑克wpk安全吗,cloudpoker外挂,2025新版技巧(有挂黑科技)1、很好的...
透视安装(wEPOKE)外挂透... 透视安装(wEPOKE)外挂透明挂辅助工具(wepoke辅助挂)一贯是真的有挂(详细透视力荐教程)1...
we辅助poker德之星!we... we辅助poker德之星!wepoke免费软件透明挂,wpk统计插件,2025新版教程(有挂攻略)(...
透视美元局(wePokE)透明... 1、透视美元局(wePokE)透明挂辅助工具(wepoke智能ai)原生存在有挂(详细透视透视教程)...
微扑克系统发牌规律!wpk微扑... 微扑克系统发牌规律!wpk微扑克真的,微扑克发牌逻辑,黑科技教程(有挂方法)1.微扑克系统发牌规律 ...
透视免费(wepOke)透视辅... 透视免费(wepOke)透视辅助神器(wepoke辅助有挂)确实存在有挂(详细透视细节方法)是一款可...
WePoKe透明挂!微扑克模拟... WePoKe透明挂!微扑克模拟器是什么,wpk辅助器小程序,分享教程(有挂方法)是一款可以让一直输的...
透视神器(wepoke)透视辅... 透视神器(wepoke)透视辅助神器(WePoKe透明挂)素来存在有挂(详细透视微扑克教程);玩家必...