revalidateTag

revalidateTag 함수는 특정 캐시 태그에 대해 필요에 따라 캐시된 데이터를 무효화할 수 있게 해줍니다.

참고 사항:

  • revalidateTagNode.js와 Edge 런타임 모두에서 사용할 수 있습니다.
  • revalidateTag는 경로가 다음에 방문될 때 캐시를 무효화합니다. 즉, 동적 경로 세그먼트를 가진 경로로 revalidateTag를 호출해도 즉시 많은 재검증이 발생하지 않습니다. 무효화는 경로가 다음에 방문될 때 발생합니다.

Parameters

revalidateTag(tag: string): void;
  • tag: 재검증하려는 데이터와 관련된 캐시 태그를 나타내는 문자열입니다. 256자 이하이어야 하며, 대소문자를 구분합니다.

태그를 fetch에 추가할 수 있습니다:

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

Returns

revalidateTag는 값을 반환하지 않습니다.

Examples

서버 액션

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')
}

라우트 핸들러

app/api/revalidate/route.ts
import type { 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() })
}