تخطَّ إلى المحتوى

cacheTag()

وسم بيانات مخزَّنة للإبطال الانتقائي cacheTag()

تضيف وسمًا (tag) لبيانات مخزَّنة داخل نطاق 'use cache'، عشان تقدر تبطلها لاحقًا بدون ما تلمس بقية الكاش.

تُستدعى جوّه دالة أو مكوّن عليه 'use cache'. بعد الوسم، تقدر تستخدم revalidateTag أو updateTag بنفس اسم الوسم لإبطال البيانات المرتبطة به فقط، بدون التأثير على باقي الكاش.

الوسوم idempotent — تكرار نفس الوسم على نفس البيانات ما له أثر إضافي، وتقدر تمرّر أكثر من وسم بنداء واحد.

الصياغة

import { cacheTag } from 'next/cache';
cacheTag('tagName');

📄 مثال

import { cacheTag } from 'next/cache';

async function getData() {
  'use cache';
  cacheTag('bookings-data');

  const res = await fetch('/api/bookings');
  return res.json();
}

أهم النقاط

العنصرالوظيفة
وسم واحد أو أكثرتقدر تمرر عدّة قيم بنفس النداء: cacheTag('a', 'b')
حد أقصى128 وسمًا بالنداء الواحد، كل وسم أقل من 256 حرف

💡 نصائح عملية

  • اربط الوسم ببيانات ديناميكية (زي معرّف المنتج) لإبطال دقيق جدًا لاحقًا
  • استخدم revalidateTag أو updateTag بنفس اسم الوسم لإبطاله عند تعديل البيانات

⚠️ أخطاء شائعة

  • استخدام revalidateTag على اسم وسم ما استُخدم فعليًا بأي cacheTag — ما له أثر
  • استخدام نفس الوسم لبيانات غير مرتبطة منطقيًا — يبطل أكثر مما تقصد

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار NEXTJS الكامل بالعربي.