在版本 15 中,我们推荐使用 connection 而不是 unstable_noStore。
unstable_noStore 可用于声明性地退出静态渲染,并指示特定组件不应被缓存。
import { unstable_noStore as noStore } from 'next/cache';
export default async function ServerComponent() {
noStore();
const result = await db.query(...);
...
}须知:
unstable_noStore等同于fetch请求中的cache: 'no-store'unstable_noStore优于export const dynamic = 'force-dynamic',因为它更细粒度,可以按组件使用。
unstable_cache 内部使用 unstable_noStore 不会退出静态生成。相反,它会遵循缓存配置来决定是否缓存结果。如果你不想向 fetch 传递额外的选项,例如 cache: 'no-store'、next: { revalidate: 0 },或者在 fetch 不可用的情况下,你可以使用 noStore() 来替代所有这些用例。
import { unstable_noStore as noStore } from 'next/cache';
export default async function ServerComponent() {
noStore();
const result = await db.query(...);
...
}| 版本 | 变更 |
|---|---|
v15.0.0 | unstable_noStore 已弃用,推荐使用 connection。 |
v14.0.0 | 引入 unstable_noStore。 |