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.