revalidateTag

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

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

  • revalidateTag متاحة في كل من بيئات تشغيل Node.js و Edge.
  • 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 { 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() })
}