0Pricing
React Academy · درس

تعريف الأعمدة وعرض الصفوف

اضبط تعريفات الأعمدة باستخدام accessors والعناوين ومعالجات عرض الخلايا لعرض بياناتك

تعريف الأعمدة وعرض الصفوف درس مجاني في React Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

نوع ColumnDef

يُوصف كل عمود في TanStack Table بكائن ColumnDef. وأهم حقلين هما accessorKey، وهو اسم الخاصية في كائن البيانات، وheader، وهو سلسلة تسمية العمود أو دالة تصيير.

يُعد أسلوب accessorKey مثالياً للبيانات المسطحة، أما القيم المعقدة أو المحسوبة فتحتاج إلى accessorFn.

accessorKey مقابل accessorFn

عندما تحتوي بياناتكم على خاصية مباشرة مثل name أو email، استخدموا accessorKey: 'name'. وعندما تحتاجون إلى حساب قيمة، مثل دمج firstName وlastName، استخدموا accessorFn: row => row.firstName + ' ' + row.lastName.

يكون كلا الأسلوبين محددَي النوع بالكامل عند تمرير النوع العام لبيانات الصف إلى ColumnDef.

تصيير الخلايا المخصص باستخدام cell

يقبل الحقل cell في ColumnDef دالة تتلقى سياق الخلية وتعيد JSX. وهذه هي الطريقة لعرض الشارات والأزرار والصور أو أي واجهة مخصصة داخل الخلية.

تكفي cell.renderValue() للقيم النصية البسيطة. أما لأي محتوى أكثر غنى، فاستخرجوا المعلومات من cell.getContext().

بناء مصفوفة الأعمدة

عرّفوا الأعمدة خارج المكوّن لتجنب إعادة إنشائها عند كل تصيير. مرّروا المصفوفة إلى useReactTable مع data وgetCoreRowModel.

سيستنتج TypeScript أنواع الأعمدة عند تقييد ColumnDef بنوع بياناتكم، مما يمنحكم الإكمال التلقائي لقيم accessorKey.

شرح getCoreRowModel

‏getCoreRowModel دالة مُنشئة مستوردة من @tanstack/react-table. تمرّرون القيمة التي تعيدها إلى useReactTable لإخبار المثيل بكيفية بناء القائمة الأساسية للصفوف من مصفوفة البيانات.

تُضاف نماذج صفوف أخرى، مثل الصفوف المرتبة والمصفاة والمقسّمة إلى صفحات، فوق ذلك عبر تمرير دوال مُنشئة إضافية للنماذج.

تصيير thead باستخدام getHeaderGroups

استدعوا table.getHeaderGroups() واستخدموا التكرار على النتيجة لتصيير thead. تحتوي كل مجموعة رؤوس على مصفوفة headers، بينما يحتوي كل رأس على تعريف العمود ومعرّف.

استخدموا flexRender(header.column.columnDef.header, header.getContext()) لتصيير محتوى الرأس، سواء كان سلسلة نصية أو دالة تعيد JSX.

تصيير tbody باستخدام getRowModel

استدعوا table.getRowModel().rows واستخدموا التكرار على كل صف لتصيير عنصر tr. وداخل الصف، استدعوا row.getVisibleCells() واستخدموا التكرار على كل خلية لتصيير عنصر td.

استخدموا flexRender(cell.column.columnDef.cell, cell.getContext()) لتصيير محتوى الخلية، مع احترام أي مصيّر خلايا مخصص معرّف في العمود.

الأداة المساعدة flexRender

‏flexRender أداة مساعدة تقبل مكوّن React أو دالة تعيد JSX أو قيمة عادية، وتصيّرها بشكل متسق. وتتيح لتعريفات الأعمدة استخدام سلاسل نصية بسيطة أو دوال تصيير كاملة للرؤوس والخلايا.

تعني واجهة API الموحدة هذه أنكم لا تحتاجون إلى التحقق من نوع التعريف قبل تصييره.

سياق الخلية وrenderValue

تعيد cell.renderValue() قيمة accessor الخام منسّقة كسلسلة نصية. ولمزيد من التحكم، يوفر cell.getContext() سياق التصيير الكامل، بما في ذلك الصف والعمود ومثيل الجدول والقيمة الخام.

تستخدم مصيّرات الخلايا المخصصة هذا السياق للوصول إلى بيانات الصف المرتبطة التي تتجاوز قيمة accessor المفردة.

تثبيت الأعمدة وMeta

يقبل كل ColumnDef حقلاً باسم meta يمكنكم فيه إرفاق بيانات وصفية عشوائية مثل isSticky: true أو alignment: 'right'. ويمكنكم الوصول إليها في المصيّر عبر column.columnDef.meta.

لتثبيت الأعمدة إلى اليسار أو اليمين، يوفر TanStack Table حالة تثبيت الأعمدة ودوالاً مساعدة على كائن العمود.

جمع الأجزاء كلها

عرّفوا مصفوفة ColumnDef باستخدام accessorKey وheader وcell الاختياري. استدعوا useReactTable باستخدام data وcolumns وgetCoreRowModel. استخدموا التكرار على getHeaderGroups لتصيير thead، وعلى getRowModel().rows لتصيير tbody، مع استخدام flexRender لتصيير كل رأس وكل خلية.

يمنحكم هذا الإعداد البسيط جدولاً يعمل بالكامل ويمكنكم تنسيقه بحرية كاملة.

accessorKey مقابل accessorFn

متى ينبغي استخدام accessorFn بدلاً من accessorKey في تعريف عمود TanStack Table؟

مراجعة الدرس

عرّفوا الأعمدة باستخدام ColumnDef، مع accessorKey للحقول المباشرة أو accessorFn للقيم المحسوبة. مرّروا columns وgetCoreRowModel إلى useReactTable، ثم صيّروا الجدول باستخدام getHeaderGroups للرؤوس وgetRowModel().rows لصفوف المحتوى.

تتعامل الأداة المساعدة flexRender بشكل موحد مع تعريفات الرؤوس والخلايا، سواء أكانت سلاسل نصية أم دوال.

الأسئلة الشائعة

هل درس «تعريف الأعمدة وعرض الصفوف» مجاني؟

نعم — نص درس «تعريف الأعمدة وعرض الصفوف» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «تعريف الأعمدة وعرض الصفوف»؟

اضبط تعريفات الأعمدة باستخدام accessors والعناوين ومعالجات عرض الخلايا لعرض بياناتك تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «تعريف الأعمدة وعرض الصفوف»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. فلسفة TanStack Table والتصميم بلا واجهة
  2. تعريف الأعمدة وعرض الصفوف
  3. الفرز والتصفية والترقيم
  4. تحديد الصفوف والجداول الافتراضية
← العودة إلى React Academy