ApolloClientuseQuery在Next.jsrouter.push时进行不必要的重新获取数据
创始人
2024-09-09 08:00:33
0

在Next.js的_router.js_文件中添加一个_onPrefetch_钩子来手动触发查询,以避免不必要的重新获取数据。以下是示例代码:

// pages/_app.js

import { ApolloProvider } from '@apollo/client';
import { useApollo } from '../lib/apolloClient';

function MyApp({ Component, pageProps }) {
  const apolloClient = useApollo(pageProps.initialApolloState);
  return (
    
      
    
  );
}

export default MyApp;

// pages/index.js 

import { useQuery } from '@apollo/client';
import gql from 'graphql-tag';
import Link from 'next/link';
import { useState } from 'react';
import { useRouter } from 'next/router';

const QUERY = gql`
  query Posts($first: Int!, $skip: Int!) {
    allPosts(first: $first, skip: $skip) {
      id
      title
    }
  }
`;

const Index = () => {
  const [showing, setShowing] = useState(5);
  const { data, loading, error } = useQuery(QUERY, {
    variables: { first: showing, skip: 0 },
    notifyOnNetworkStatusChange: true,
  });
  const router = useRouter();
  const handleShowMore = () => {
    setShowing(showing + 5);
    router.push('/'); // <-- 需要手动触发查询 useEffect(() => { refetch() }, [])
  }
  if (error) return 
Error: {JSON.stringify(error)}
; if (loading) return
Loading...
; return (
{data.allPosts.map((post) => (
{post.title}
))}
); }; export default Index; // lib/apolloClient.js import { useMemo } from 'react'; import { ApolloClient, HttpLink, InMemoryCache, NormalizedCacheObject } from '@apollo/client'; let apolloClient; function createApolloClient() { return new ApolloClient({ ssrMode: typeof window === 'undefined', link: new HttpLink({ uri: 'http://localhost:3000/graphql', credentials: 'same-origin', }), cache: new InMemoryCache(), }); } export function initializeApollo(initialState = null) { const _apolloClient = apolloClient ?? createApolloClient(); if (initial

相关内容

热门资讯

透视好牌(Wepokeapp)... 透视好牌(Wepokeapp)外挂透明挂辅助机制(辅助挂)透视辅助(有挂方略)-哔哩哔哩;实战中需综...
十分钟了解(wepoke玄学)... 十分钟了解(wepoke玄学)外挂透明挂辅助器(透视)确实是真的有挂(2025已更新)(哔哩哔哩);...
每日必备(wpk猫腻)外挂透明... 每日必备(wpk猫腻)外挂透明挂辅助器(辅助挂)透视辅助(存在有挂)-哔哩哔哩1、完成wpk猫腻的残...
科技揭秘!Wepoke渠道(w... 科技揭秘!Wepoke渠道(wePOke)外挂透明挂辅助APP(辅助挂)必备教程(有挂解惑)-哔哩哔...
热点推荐(智星德州)外挂透明挂... WePoker透视辅助版本稳定性对比与推荐‌:热点推荐(智星德州)外挂透明挂辅助软件(辅助挂)透视辅...
教程辅助(德扑开发)外挂透明挂... 教程辅助(德扑开发)外挂透明挂辅助机制(辅助挂)果真是真的有挂(2024已更新)(哔哩哔哩)相信很多...
分享一款(WPK开挂)外挂透明... WPK开挂新手教程相关信息汇总(需添加指定薇757446909获取下载链接);分享一款(WPK开挂)...
记者揭秘!aapoker有外挂... WePoker透视辅助版本解析‌,记者揭秘!aapoker有外挂(wepoKe)外挂透明挂辅助器(辅...
透明讲解(WPK打法)外挂透明... WePoker透视辅助工具核心要点解析‌,透明讲解(WPK打法)外挂透明挂辅助神器(透视)透视辅助(...
今日焦点(德州)外挂透明挂辅助... 今日焦点(德州)外挂透明挂辅助软件(透视)确实真的有挂(2025已更新)(哔哩哔哩);德州软件透明挂...