revalidatePath()
إبطال التخزين المؤقّت لمسار محدّد revalidatePath()
تبطل الكاش لمسار معيّن (صفحة أو تخطيط) عند الطلب، فيُعاد توليده بالزيارة القادمة.
تُستدعى جوّه Server Functions أو Route Handlers فقط — ما تشتغل بمكوّنات العميل. مرّر مسارًا حرفيًا مثل /blog/post-1 لصفحة واحدة، أو نمطًا فيه مقطع ديناميكي مثل /blog/[slug] مع تحديد النوع 'page' أو 'layout'.
لو تستخدم rewrites بـ next.config، مرّر مسار الوجهة (destination) وليس المسار الظاهر بشريط العنوان — لأن الكاش مرتبط بملف المسار الفعلي، مو الرابط اللي يشوفه المستخدم.
الصياغة
revalidatePath(path: string, type?: 'page' | 'layout'): void
📄 مثال
'use server';
import { revalidatePath } from 'next/cache';
export async function publishPost() {
await savePost();
revalidatePath('/blog/[slug]', 'page');
}أهم النقاط
| العنصر | الوظيفة |
|---|---|
| path | مسار حرفي زي /blog/post-1، أو نمط فيه [slug] مع تحديد type |
| type | 'page' أو 'layout' — إلزامي لو المسار فيه مقطع ديناميكي |
💡 نصائح عملية
- استخدمه جوّه Server Actions أو Route Handlers فقط — ما يشتغل بمكوّنات العميل ولا بالوسيط (Proxy)
- لضبط كل التطبيق دفعة وحدة استخدم revalidatePath('/', 'layout')
⚠️ أخطاء شائعة
- نسيان type مع مسار فيه مقطع ديناميكي متل [slug] — الدالة تحتاجه لتعرف أي نوع ملف تبطل
- استخدام المسار الظاهر بالمتصفح بدل مسار الوجهة عند وجود rewrites بـ next.config
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار NEXTJS الكامل بالعربي.