أطلقت TanStack النسخة التجريبية من Table v9، وهي مكتبة شبكة بيانات (data-grid) تتيح للمطورين اختيار الميزات التي يحتاجونها فقط. تتقلص أحجام الحزم (bundles) لتصل إلى حوالي 5 كيلوبايت، وتختفي تأخيرات "التفاعل إلى الرسم التالي" (INP) التي كانت تجعل عمليات الفرز أو التصفية تبدو ثقيلة.

لماذا يهم هذا التغيير

في الإصدار v8، تأتي المكتبة بكل منطق الشبكة (grid logic)—الفرز، التصفية، تقسيم الصفحات، اختيار الصفوف، والتجميع—سواء كان المشروع يستخدمها أم لا. يعمل هذا الكود الإضافي على الخيط الرئيسي (main thread)، مما يضخم حجم الحزمة ويضيف زمن تأخير (latency) إلى إجراءات المستخدم. بالنسبة للوحات التحكم التي تتطلب جداول سريعة واستجابية، يمكن لبضعة أجزاء من الثانية من التأخير أن تدفع درجة INP إلى النطاق الضعيف.

ما الذي يفعله الإصدار v9 بشكل مختلف

  • وحدات ميزات اختيارية (Opt-in) – استورد الأجزاء التي تستخدمها فعلياً فقط. إذا تخطيت عملية الفرز، فلن يدخل كود الفرز أبداً في الحزمة.
  • التكامل مع TanStack Store – إدارة الحالة باستخدام مخزن دقيق (fine-grained store)، بحيث لا يؤدي تحديث صف واحد إلى إعادة رسم (re-render) كاملة لشريط التصفية أو أي عناصر أخرى غير مرتبطة في واجهة المستخدم.
  • تقليل استهلاك الذاكرة – تقليل عدد الكائنات والمصفوفات يخفف الضغط على ذاكرة JavaScript heap خلال الجلسات الطويلة.

تترجم هذه التغييرات إلى حجم تحميل أصغر (يمكن أن تقترب المكتبة من 5 كيلوبايت للقائمة البسيطة) وتفاعل أكثر سلاسة عندما تكون الشبكة مشغولة.

من المستفيد

  • فرق الواجهة الأمامية (Frontend teams) التي تبني أدوات داخلية، أو لوحات إدارة، أو لوحات تحكم SaaS حيث تكون الجداول هي عنصر واجهة المستخدم الأساسي.
  • المواقع التي تركز على الأداء والتي تراقب مقاييس Core Web Vitals؛ حيث يؤدي خفض قيمة INP مباشرة إلى تحسين هذا المقياس.

ما الذي لا يعالجه الإصدار v9

تستهدف التحسينات الكود الذي تتحكم فيه أنت. لن تسرع هذه التغييرات بشكل سحري صفحة تسحب حمولة JSON ضخمة، ولن تعوض تكلفة سكربت خارجي ثقيل. لا تزال مجموعات البيانات الكبيرة بحاجة إلى تقسيم صفحات (pagination) مناسب، ويظل زمن تأخير الشبكة مصدر قلق منفصل.

مسار هجرة عملي

  1. حدد أثقل الجداول – ابحث عن قوائم الطلبات، أو شبكات المخزون، أو واجهات CRM التي تظهر بالفعل تأخيراً ملحوظاً.
  2. سجل المقاييس المرجعية (baseline metrics) – سجل قيم INP ومدة المهام الطويلة (long-task durations) في تلك الصفحات قبل إجراء أي تغييرات.
  3. قم بالهجرة لشبكة واحدة في كل مرة – استبدل استيراد v8 بمجموعة وحدات v9، مع تفعيل الميزات التي تستخدمها الشاشة فعلياً فقط.
  4. تجنب حزمة stockFeatures الشاملة – استدعاء مجموعة الميزات الافتراضية يلغي الغرض من توفير الحجم.
  5. أعد اختبار التفاعلات – قم بقياس عمليات الفرز والتصفية والاختيار مرة أخرى للتأكد من مكاسب الأداء.

وجهة نظر مغايرة: ليس حلاً سحرياً

قد يتوقع بعض المطورين أن يحل الإصدار v9 كل مشكلة بطء في واجهة المستخدم. في الواقع، مكاسب المكتبة محدودة بكمية الكود المخصص الذي يمكنك تقليمه. إذا كان عنق الزجاجة في الجدول هو الحجم الهائل للصفوف أو واجهة برمجة تطبيقات (API) غير فعالة من الخادم، فسيكون لتقليل حجم الحزمة تأثير محدود.

ما يجب مراقبته لاحقاً

الخلاصة: يمنحك TanStack Table v9 طريقة ملموسة للتوقف عن دفع ثمن وظائف الشبكة غير المستخدمة. من خلال استيراد الوحدات المطلوبة فقط واستخدام مخزن دقيق، يمكنك توفير عدة كيلوبايتات من حزمك وتقديم تفاعلات جداول أكثر سرعة بشكل ملحوظ—بشرط أن تقرن هذه الترقية باستراتيجيات معقولة لمعالجة البيانات.