为什么next.js在每次加载页面时调用getStaticPaths ?



我有一系列产品详细信息页面,我正在预呈现,并期望在重新验证期间,Next在刷新我所处的页面时不需要调用getStaticPaths。与他们在这里的例子类似,我想假装一些顶级产品。我发现在开发过程中,它在每次刷新或URL更改时都调用getStaticPaths,即使它是我已经在的页面。这个表面的问题是,在开发过程中,当测试需要更改URL参数的功能时,getStaticPaths将被调用,并且在此期间页面将无响应。在下面的例子中,我希望得到1000个产品,但减少到10个,这样我就可以开发了。

为什么Next.js在每次页面加载时调用这个函数,这是一个仅用于开发的行为吗?
export const getStaticPaths = async () => {
console.log("Getting static paths");
let listingHandles: { __typename: string; handle: string }[] = [];
// fetch 10 product handles at a time, the api is sensitive
async function* productOffsetGenerator() {
let offset = 0;
while (offset < 10) {
yield (offset += 10);
}
}
for await (const offset of productOffsetGenerator()) {
const { data } = await apolloClient.query({
query: GET_LISTINGS_HANDLE,
variables: {
offset,
},
});
listingHandles = [...listingHandles, ...data.listedListings.listings];
}
const paths = listingHandles.map((edge: { handle: string }) => ({
params: { handle: edge.handle },
}));
return {
fallback: "blocking",
paths,
};
};

这是仅用于开发的行为吗

确认此行为仅在开发过程中发生。