Reactالقوائم
- مفهوم القوائم في React
- تحضير مشروع للتطبيق العملي
- عرض قائمة من العناصر في React
- عرض أرقام فهرس العناصر في React
- عرض قائمة من الكائنات في React
مفهوم القوائم في React
القائمة ( List ) يقصد بها مجموعة من العناصر يتم المرور عليها بذات الترتيب الموضوعة فيه و من ثم عرضها في واجهة المستخدم بأسلوب JSX.
عناصر القائمة قد تكون عبارة عن مجموعة من الروابط، مجموعة من المستخدمين، مجموعة من المنتجات أو ما شابه.
لأجل المرور على عناصر القائمة فإنه عادةً يتم استخدام الدالة map()
الموجودة في جافاسكربت و التي تتيح المرور على عناصر المصفوفات بذات الترتيب الموضوعين فيه بالإضافة إلى إمكانية فلترتهم.
في هذا الدرس ستتعلم كيف تعرض قائمة من العناصر في واجهة المستخدم بالإضافة إلى فلترتهم و عرض أرقامهم الترتيبية في القائمة.
تحضير مشروع للتطبيق العملي
إفعل الخطوات التالية تباعاً حتى تنشئ مشروع جديد و تطبق فيه الأمثلة كما فعلنا بالضبط:
- قم بإنشاء مشروع جديد إسمه
demo-app
. - بداخل المجلد
src
تجد ملف إسمهApp.js
قم بحذف كل الكود الإفتراضي الموجود فيه. - بداخل المجلد
src
قم بإنشاء مجلد جديد إسمهcomponents
لأننا سنضع بداخله مكوّنات. - بداخل المجلد
components
قم بإنشاء ملف إسمهUser.js
لأنه سيمثل مكوّن.
في هذا المشروع قمنا بتجهيز مكوّن واحد هو <User>
لأننا سنقوم لاحقاً بإنشاء حلقة تعرض مجموعة من العناصر في واجهة المستخدم بالإعتماد عليه و في كل مرة سنقوم بإجراء تعديل عليه ليكون قادراً على استقبال و عرض البيانات التي نمررها فيه بالشكل المناسب.
عرض قائمة من العناصر في React
في المثال التالي قمنا بإنشاء قائمة إسمها users
تتألف من 3 عناصر.
بعدها قمنا باستخدام الدالة map()
للمرور على جميع عناصرها واحداً تلو الآخر.
كل عنصر مررنا عليه قمنا بعرض قيمته في المكوّن <User>
.
مثال
// User هنا قمنا بتعريف دالة تمثل مكوّن إسمه function User(props) { return <li>{props.username}</li>; } // يمكن الوصول إليه من خارج هذا الملف User هنا قمنا بجعل المكون export default User;
// User.js الموجود في الملف User هنا قمنا بتضمين المكون import User from "./components/User"; // الذي يمثل الحاوية الرئيسية في واجهة المستخدم <App> هنا قمنا بتعريف المكون function App() { // وضعنا فيها 3 عناصر users هنا قمنا بتعريف مصفوفة إسمها let users = ['Mhamad', 'Sara', 'Ramy']; // users للمرور على جميع عناصر المصفوفة map() هنا قمنا باستخدام الدالة // user مع تخزين عنصر واحد منهم في كل مرة بشكل مؤقت في المتغير // <User> في المكون user ليتم في النهاية عرض قيمة المتغير return ( <> <h1>Users data</h1> <ul> {users.map(user => <User username={user} />)} </ul> </> ); } // يمكن الوصول إليه من خارج هذا الملف لأنه المكون App هنا قمنا بجعل المكون // index.html الرئيسي في الصفحة و الذي يتم تضمينه بشكل تلقائي في الملف export default App;
عرض أرقام فهرس العناصر في React
في المثال التالي قمنا بوضع باراميترين في الدالة map()
مما سيجعلنا قادرين على الحصول على قيمة العنصر بالإضافة إلى رقم الفهرس الخاص به بالنسبة لموقعه في المصفوفة.
مثال
// User هنا قمنا بتعريف دالة تمثل مكوّن إسمه function User(props) { return <li>Value at index {props.index} = {props.username}</li>; } // يمكن الوصول إليه من خارج هذا الملف User هنا قمنا بجعل المكون export default User;
// User.js الموجود في الملف User هنا قمنا بتضمين المكون import User from "./components/User"; // الذي يمثل الحاوية الرئيسية في واجهة المستخدم <App> هنا قمنا بتعريف المكون function App() { // وضعنا فيها 3 عناصر users هنا قمنا بتعريف مصفوفة إسمها let users = ['Mhamad', 'Sara', 'Ramy']; // users للمرور على جميع عناصر المصفوفة map() هنا قمنا باستخدام الدالة // user مع تخزين عنصر واحد منهم في كل مرة بشكل مؤقت في المتغير // index بالإضافة أيضاً إلى تخزين رقم فهرس العنصر الحالي في المتغير // <User> في المكون index و قيمة المتغير user و في النهاية سيتم عرض قيمة المتغير return ( <> <h1>Users data</h1> <ul> {users.map((user, index) => <User username={user} index={index} />)} </ul> </> ); } // يمكن الوصول إليه من خارج هذا الملف لأنه المكون App هنا قمنا بجعل المكون // index.html الرئيسي في الصفحة و الذي يتم تضمينه بشكل تلقائي في الملف export default App;
عرض قائمة من الكائنات في React
في المثال التالي قمنا بإنشاء مصفوفة إسمها users
فيها 3 كائنات.
بعدها قمنا باستخدام الدالة map()
للمرور على عناصرها و عرض قيمهم.
كل عنصر مررنا عليه قمنا بعرض قيمته في المكوّن <User>
.
مثال
// User هنا قمنا بتعريف دالة تمثل مكوّن إسمه function User(props) { return <li>{props.username} has id {props.userId}.</li>; } // يمكن الوصول إليه من خارج هذا الملف User هنا قمنا بجعل المكون export default User;
// User.js الموجود في الملف User هنا قمنا بتضمين المكون import User from "./components/User"; // الذي يمثل الحاوية الرئيسية في واجهة المستخدم <App> هنا قمنا بتعريف المكون function App() { // وضعنا فيها 3 عناصر عبارة عن كائنات users هنا قمنا بتعريف مصفوفة إسمها let users = [ {id: 1, username: 'Mhamad'}, {id: 2, username: 'Sara'}, {id: 3, username: 'Ramy'} ]; // users للمرور على جميع عناصر المصفوفة map() هنا قمنا باستخدام الدالة // user مع تخزين عنصر واحد منهم في كل مرة بشكل مؤقت في المتغير // <User> الذي هو عبارة عن كائن في المكون user ليتم في النهاية تمرير قيم المتغير return ( <> <h1>Users data</h1> <ul> {users.map(user => <User userId={user.id} username={user.username} />)} </ul> </> ); } // يمكن الوصول إليه من خارج هذا الملف لأنه المكون App هنا قمنا بجعل المكون // index.html الرئيسي في الصفحة و الذي يتم تضمينه بشكل تلقائي في الملف export default App;