unstable_cache
تسمح لك unstable_cache
بتخزين نتائج العمليات المكلفة، مثل استعلامات قاعدة البيانات، وإعادة استخدامها عبر طلبات متعددة.
import { getUser } from './data';
import { unstable_cache } from 'next/cache';
const getCachedUser = unstable_cache(
async (id) => getUser(id),
['my-app-user']
);
export default async function Component({ userID }) {
const user = await getCachedUser(userID);
...
}
معلومة مفيدة: الوصول إلى مصادر البيانات الديناميكية مثل
headers
أوcookies
داخل نطاق التخزين المؤقت غير مدعوم. إذا كنت بحاجة إلى هذه البيانات داخل دالة مخزنة مؤقتًا، استخدمheaders
خارج الدالة المخزنة ومرر البيانات الديناميكية المطلوبة كوسيطة.
تحذير: واجهة برمجة التطبيقات (API) هذه غير مستقرة وقد تتغير في المستقبل. سنوفر وثائق للهجرة وأدوات تعديل التعليمات البرمجية (codemods) إذا لزم الأمر عند استقرار هذه الواجهة.
المعاملات
const data = unstable_cache(fetchData, keyParts, options)()
fetchData
: دالة غير متزامنة تقوم باسترداد البيانات التي تريد تخزينها مؤقتًا. يجب أن تكون دالة تُرجعPromise
.keyParts
: مصفوفة تحدد مفتاح التخزين المؤقت. يجب أن تحتوي على قيم فريدة عالميًا تُعرِّف معًا مفتاح البيانات التي يتم تخزينها مؤقتًا. يتضمن مفتاح التخزين المؤقت أيضًا الوسائط الممررة إلى الدالة.options
: كائن يتحكم في سلوك التخزين المؤقت. يمكن أن يحتوي على الخصائص التالية:tags
: مصفوفة من العلامات التي يمكن استخدامها للتحكم في إبطال التخزين المؤقت.revalidate
: عدد الثواني التي بعدها يجب إعادة التحقق من صحة التخزين المؤقت. احذف أو مررfalse
للتخزين المؤقت إلى أجل غير مسمى أو حتى يتم استدعاء طرقrevalidateTag()
أوrevalidatePath()
المطابقة.
القيم المُرجعة
تُرجع unstable_cache
دالة عند استدعائها، تُرجع Promise يتم حلها إلى البيانات المخزنة مؤقتًا. إذا لم تكن البيانات في التخزين المؤقت، سيتم استدعاء الدالة المقدمة، وسيتم تخزين نتيجتها مؤقتًا وإرجاعها.
سجل الإصدارات
الإصدار | التغييرات |
---|---|
v14.0.0 | تم تقديم unstable_cache . |