Lang x Lang

revalidateTag

revalidateTagは、特定の cache タグのキャッシュデータをオンデマンドでパージすることを可能にします。

Good to know:

  • revalidateTagは、Node.js と Edge runtimesの両方で利用可能です。
  • revalidateTagは、 path が next 訪れたときにのみ、 cache を無効化します。これは、revalidateTagを dynamic route セグメントで呼び出すと、すぐに多くの再検証が一度にトリガーされないことを意味します。無効化は、 path が next 訪れたときにのみ発生します。

Parameters

revalidateTag(tag: string): void;
  • tag:あなたが revalidate したいデータに関連付けられた cache タグを表す string。256 文字以下でなければなりません。この value は大文字と小文字を区別します。

fetchに以下のようにタグを追加することができます:

fetch(url, { next: { tags: [...] } });

Returns

revalidateTagは何も value を返しません。

Examples

Server Action

app/actions.ts
'use server'

import { revalidateTag } from 'next/cache'

export default async function submit() {
  await addPost()
  revalidateTag('posts')
}
app/actions.js
'use server'

import { revalidateTag } from 'next/cache'

export default async function submit() {
  await addPost()
  revalidateTag('posts')
}

Route Handler

app/api/revalidate/route.ts
import { NextRequest } from 'next/server'
import { revalidateTag } from 'next/cache'

export async function GET(request: NextRequest) {
  const tag = request.nextUrl.searchParams.get('tag')
  revalidateTag(tag)
  return Response.json({ revalidated: true, now: Date.now() })
}
app/api/revalidate/route.js
import { revalidateTag } from 'next/cache'

export async function GET(request) {
  const tag = request.nextUrl.searchParams.get('tag')
  revalidateTag(tag)
  return Response.json({ revalidated: true, now: Date.now() })
}

当社サイトでは、Cookie を使用しています。各規約をご確認の上ご利用ください:
Cookie Policy, Privacy Policy および Terms of Use