مُحوِّل React في 2026: ما الذي يحفظه في الذاكرة المؤقتة (وما الذي لا يحفظه)
جدول المحتويات
عن الكاتب

Ahmed Mahmoud
كاتب ومطوّر
مهندس برمجيات شغوف بتطوير الويب وتصميم تجربة المستخدم.
مؤسّس ديفيا · eng-ahmed.com ↗النقاط الرئيسية
مُحوِّل React يُدرج الحفظ في الذاكرة المؤقتة تلقائياً — ما يعادل useMemo و useCallback و React.memo — بتحليل تدفق البيانات في مرحلة البناء. لا حاجة لمصفوفات الاعتماديات.
فعِّله في Next.js 15 أو 16 بمفتاح واحد: experimental.reactCompiler: true في next.config.ts.
المُحوِّل يُخزِّن فقط ما يستطيع إثبات أمانه — إذا شكَّ في استقرار قيمة فإنه يتجاوز المكوِّن كلياً.
"use no memo" مسار التجاوز: أضفه أعلى جسم الدالة لتوجيه المُحوِّل بتجاهلها.
شغِّل npx react-compiler-healthcheck@latest قبل التفعيل لمعرفة التغطية والمخالفات.
ما الذي يفعله مُحوِّل React؟
مُحوِّل React — أُطلق بشكل مستقر مع React 19 وكان يُعرف سابقاً بـ React Forget — يُحوِّل كود المكوِّنات والخطافات في مرحلة البناء لإدراج الحفظ في الذاكرة المؤقتة تلقائياً. بدلاً من useMemo مع مصفوفة اعتماديات، يُحلِّل المُحوِّل تدفق البيانات ويُولِّد الكود المكافئ. المُحوِّل هو إضافة Babel تعمل مع أي سلسلة بناء تعتمد عليه.
كيف نُفعِّل المُحوِّل في Next.js؟
اضبط experimental.reactCompiler على true في next.config.ts. قبل التفعيل شغِّل npx react-compiler-healthcheck@latest لمعرفة المكوِّنات القابلة للتحسين والمخالفات. إصلاح المخالفات أولاً يمنح تغطية أوسع من اليوم الأول.
ما الذي يُخزِّنه المُحوِّل؟
ثلاث فئات: المكوِّنات (ما يعادل React.memo)، والقيم داخل المكوِّنات (ما يعادل useMemo)، وردود الفعل (ما يعادل useCallback). تُستنتج الاعتماديات تلقائياً من تحليل تدفق البيانات.
متى يتجاوز المُحوِّل الحفظ؟
يتجاوز المُحوِّل الحفظ عند تغيير الخصائص أو الحالة مباشرةً، أو قراءة مراجع خارجية قابلة للتغيير، أو مخالفة قواعد الخطافات، أو وجود أنماط إعادة إسناد let معقدة.
مسار التجاوز "use no memo"
التعليمة النصية "use no memo" أعلى جسم المكوِّن تُوجِّه المُحوِّل لتجاهله. استخدمها عند خطأ في مخرج المُحوِّل أو عند تغليف مكتبة تعتمد على عدم استقرار المرجع.
هل نحذف useMemo و useCallback بعد التفعيل؟
للحالات التي يتولاها المُحوِّل: نعم في نهاية المطاف. المكوِّنات التي تُشير إليها أداة الفحص كمُحسَّنة آمنة للتنظيف. أبقِ على الحفظ اليدوي للمكوِّنات غير القابلة للتحسين.
الأسئلة الشائعة
**س:** هل يعمل بدون Next.js؟
**ج:** نعم. babel-plugin-react-compiler يعمل مع أي سلسلة بناء Babel.
**س:** هل سيُعطِّل المكوِّنات الموجودة؟
**ج:** المُحوِّل آمن — لا يُطبِّق إلا ما يستطيع إثبات صحته ويُصدر ما عداه دون تغيير.
**س:** هل يُحلُّ محلَّ React.memo؟
**ج:** للمكوِّنات القابلة للتحليل الكامل، نعم.
**س:** ما إصدار React المطلوب؟
**ج:** React 19 أو أحدث. لا يعمل على React 18.
قراءات إضافية
هندسة الواجهات الأمامية
ترحيل المشاريع من Edge Runtime في Vercel: ملاحظات ميدانية
بيئة Edge Runtime في Vercel أصبحت قيد الإيقاف التدريجي لصالح Node.js على Fluid Compute — إليكم ما وجدناه أثناء ترحيل مسارات Next.js، ولماذا استمر البث بالعمل دون أي تغيير.
هندسة الواجهات الأمامية
معالجات المسارات مقابل إجراءات الخادم في Next.js: متى نستخدم كلًّا منهما
كلٌّ من إجراءات الخادم ومعالجات المسارات ينفّذ كودًا على الخادم في موجّه تطبيقات Next.js، لكنهما يحلّان مشكلتين مختلفتين. في ديفيا نستخدم إجراءات الخادم لعمليات التعديل القادمة من واجهتنا، ومعالجات المسارات لواجهات البرمجة العامة وخطافات الويب والبث.