أعلنت TanStack Table، وهي مكتبة واجهة المستخدم بدون رأس لبناء الجداول وشبكات البيانات عبر أطر عمل JavaScript، عن TanStack Table V9 في الإصدار التجريبي، وهو إصدار أساسي يعيد صياغة إدارة الحالة واستخدام الذاكرة وحجم الحزمة وقابلية التوسعة مع الحفاظ على معرفة مطوري منطق الجدول الأساسي بالفعل.
الإصدار التجريبي، الذي تم الإعلان عنه في X في 8 يونيو 2026، يشحن إدارة الحالة المبنية على متجر TanStack، والتحكم الدقيق في إعادة العرض من خلال اشتراكات الحالة، واستخدام أقل للذاكرة على نطاق واسع، وميزات قابلة للاهتزاز مع أمان النوع، ونموذج إضافي أكثر وضوحًا، وأدوات تطوير معاد كتابتها. وهي متاحة لـ React وPreact وAngular وSolid وVue وSvelte وLit.
التغيير الرئيسي هو أن الميزات تم تمكينها الآن. في V8، يتم شحن كل ميزة معًا، ولكن V9 يسجل فقط ما يستخدمه الجدول، لذلك يمكن أن يبدأ جدول صغير بحوالي 5 كيلو بايت وتقوم شبكة المؤسسة الكاملة بالفرز والتصفية وترقيم الصفحات حسب الحاجة. يفرض TypeScript هذا، لذا فإن واجهة برمجة التطبيقات (API) مثل setSorting موجود فقط بمجرد تسجيل الميزة الخاصة به.
التحول الكبير الآخر هو الدولة. ودليل الهجرة يوضح ذلك useReactTable يصبح useTable، والدولة تتدفق الآن من خلال table.state, table.store، وذرات لكل شريحة بدلا من getState(). جديد table.Subscribe يتيح لتغييرات تحديد الصف إعادة عرض العدد الذي يعرضها فقط، بدلاً من كل عنصر تحكم يمس مثيل الجدول. يقول المشرف الرئيسي كيفن فان كوت إن التصميم تم استعارته مباشرة من TanStack Form and Store، وأن استقرار React Compiler هو ما أجبر على إعادة الكتابة لأن أنماط V8 “بدأت في الانهيار” تحتها.
كان فان كوت صريحًا بشكل غير عادي بشأن التأخير لعدة سنوات، معترفًا بأن الإصدار “ربما استغرق وقتًا طويلاً للغاية” وأن محاولة إصلاح كل شكوى من V8 مرة واحدة كانت “خطأ كبيرًا” سيتعامل معه بشكل مختلف في المرة القادمة.
حذر أحمد فياز، في كتابته على موقع Medium، من أن “واجهة برمجة تطبيقات atoms الجديدة في الإصدار التجريبي v9 ليست بديلاً سهلاً لحالة التحكم، والتمييز مهم في تطبيقات Angular وتطبيقات React على حدٍ سواء.” يتحدث عمل القابلية للتوسعة أيضًا عن شكوى متكررة، تظهر في سلسلة رسائل Reddit حيث وصف أحد المطورين المشاريع المتنامية حيث “بدلاً من كتابة التعليمات البرمجية أحاول اختراق هذه المكتبة”.
التقط أحد التبادلات ضمن سلسلة إعلان r/reactjs كيفية وصول نموذج البرنامج الإضافي إلى المستخدمين. تساءل المعلق Arceus919 عما إذا كانت حالة كل جدول لا تزال تمثل فجوة:
هل أرى بشكل صحيح أنه لا يوجد حتى الآن تعريف لكل جدول وأن كل شيء لا يزال عالميًا 🙁
لدي مجموعة من الجداول ذات الوظائف الثقيلة جدًا في تطبيقي، لذا يعد التعريف لكل جدول أمرًا ضروريًا لحالتي – لقد قمت للتو بإنشاء خطاف useTable الخاص بي لدعمه ولكني أرغب في التبديل يومًا ما
رد فان كوت بالإشارة إلى الميزة والدليل الذي قام بشحنه للتو لجدول التغطية والعمود التعريفي.
الهجرة مصممة لتكون تدريجية. أ useLegacyTable يقبل الخطاف واجهة برمجة التطبيقات (API) لنمط V8 أعلى V9 ويتم استيرادها stockFeatures يستعيد السلوك القديم المتضمن لكل شيء على حساب حجم الحزمة. ترميز الجدول نفسه لم يتغير.
بالمقارنة مع الخيارات التجارية مثل AG Grid أو MUI X Data Grid، يظل TanStack Table بلا رأس وحرًا، ويتم بناء الأغلفة مثل Material React Table فوقه. V9 هو الآن في مرحلة تجريبية، وتم وضعه كقاعدة للإصدارات المستقبلية.
