我目前正在使用Next.js,并使用Fetch方法检索数据:
const res = await fetch(`${process.env.url}/test`, {
cache: 'no-store',
})
据我所知,指定cache: 'no-store'
应该会在用户每次加载页面时强制获取新数据.
这让我怀疑这个选项是否会使组件的行为更像它的客户端呈现.通常,当我执行npm run build
时,Next.js会在构建时获取数据后生成静态的HTML文件.
但是,使用cache: 'no-store'
似乎会导致在每次加载页面时提取数据,而不是在生成时.这是否意味着我的组件本质上就像是在客户端呈现的一样?如能对此事作出任何澄清,我将不胜感激.
async function fetchItems() {
const res = await fetch(`${process.env.url}/test`, {
cache: 'no-store',
})
const items: Item[] = await res.json()
return items
}
export const ItemList = async () => {
const items = await fetchItems()
return (
<ul>
{items.map((item) => (
<li key={item.id}>
{item.title}
</li>
))}
</ul>
)
}