revalidateTag

تتيح لك revalidateTag إلغاء صلاحية البيانات المخزنة مؤقتًا عند الطلب لعلامة تخزين مؤقت معينة.

معلومة مفيدة:

  • revalidateTag تلغي صلاحية التخزين المؤقت فقط عند زيارة المسار بعد ذلك. هذا يعني أن استدعاء revalidateTag مع جزء مسار ديناميكي لن يؤدي إلى إطلاق العديد من عمليات إعادة التحقق على الفور. يتم إلغاء الصلاحية فقط عند زيارة المسار بعد ذلك.

المعاملات

revalidateTag(tag: string): void;
  • tag: سلسلة تمثل علامة التخزين المؤقت المرتبطة بالبيانات التي تريد إعادة التحقق منها. يجب أن تكون أقل من أو تساوي 256 حرفًا. هذه القيمة حساسة لحالة الأحرف.

يمكنك إضافة علامات إلى fetch كما يلي:

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

القيم المُرجعة

لا ترجع revalidateTag أي قيمة.

أمثلة

إجراء الخادم (Server Action)

'use server'

import { revalidateTag } from 'next/cache'

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

import { revalidateTag } from 'next/cache'

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

معالج المسار (Route Handler)

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