مرحبًا يا زملائي مطوري واجهة المستخدم! هل أنت مستعد لرفع مستوى لعبة React الخاصة بك؟ اليوم، نحن نتعمق في عالم React - تلك المقتطفات الأنيقة والمدمجة من التعليمات البرمجية التي يمكن أن تجعل حياتك أسهل بكثير. سواء كنت مبتدئًا في React أو محترفًا متمرسًا، فمن المؤكد أن هذه السطور ستضيف بعض الضغط الإضافي إلى مجموعة أدواتك.
أصبح React JS مكتبة مفضلة لبناء واجهات المستخدم، وذلك لسبب وجيه. إنها مرنة وفعالة وتتيح لنا إنشاء بعض الأشياء الرائعة. لكن في بعض الأحيان، نجد أنفسنا نكتب تعليمات برمجية أكثر من اللازم. هذا هو المكان الذي تكون فيه هذه الخطوط الفردية في متناول اليد. إنها مثل سكاكين الجيش السويسري في عالم React - صغيرة ولكنها قوية جدًا!
لذا، تناول مشروبك المفضل، واحصل على الراحة، ودعنا نستكشف 10 سطور من React ستجعلك تبرمج بشكل أكثر ذكاءً، وليس أكثر صعوبة. مستعد؟ هيا بنا نبدأ!
فلنبدأ بسيناريو React الكلاسيكي: العرض الشرطي. كما تعلمون، عندما تريد إظهار شيء ما فقط في حالة استيفاء شرط معين. تقليديًا، يمكنك استخدام عبارة if أو عامل تشغيل ثلاثي. لكن تحقق من هذا:
{condition &&}
تستخدم هذه الجوهرة الصغيرة عامل التشغيل المنطقي (&&) لعرض المكون فقط عندما يكون الشرط صحيحًا. إنها بسيطة ونظيفة وتنجز المهمة دون أي ضجة.
يكمن جمال هذا السطر الواحد في كيفية تقييم JavaScript للتعبيرات المنطقية. إذا كان الشرط قبل && خاطئًا، فسيكون التعبير بأكمله خاطئًا، ولن تعرض React أي شيء. لكن إذا كان هذا صحيحًا، ستنتقل React لتقييم ما يأتي بعد &&، والذي في هذه الحالة هو المكون الخاص بنا.
هذه التقنية مثالية لتلك الأوقات التي يكون لديك فيها موقف واضح بنعم أو لا. ربما تريد عرض رسالة ترحيب فقط للمستخدمين الذين قاموا بتسجيل الدخول، أو عرض عرض خاص خلال ساعات معينة فقط. مهما كانت الحالة، فإن هذه الخطوط العريضة ستوفر لك التغطية.
التالي، دعونا نتحدث عن الدعائم الافتراضية. نعلم جميعًا مدى أهمية التعامل مع الحالات التي قد لا يتم فيها تمرير الخاصيات إلى أحد المكونات. تتضمن الطريقة المعتادة إعداد defaultProps أو استخدام المعلمات الافتراضية في توقيع الوظيفة. ولكن إليك جملة سريعة تفي بالغرض:
const {prop = defaultValue} = props;
يستخدم هذا السطر مهمة التدمير بقيمة افتراضية. إذا كانت الخاصية غير محددة في الخاصيات، فسوف تعود إلى القيمة الافتراضية.
هذا النهج نظيف للغاية ويحدث بشكل صحيح في الجسم الوظيفي. إنه مفيد بشكل خاص عندما تتعامل مع دعائم متعددة ولا ترغب في إحداث فوضى في توقيع وظيفتك أو إضافة كائن defaultProps منفصل.
تخيل أنك تقوم بإنشاء مكون زر يمكن أن يكون له أحجام مختلفة. يمكنك استخدامه مثل هذا:
const Button = ({ size = 'medium', children }) => { return ; };
الآن، إذا استخدم شخص ما الزر الخاص بك دون تحديد الحجم، فسيتم تعيينه افتراضيًا على "متوسط". أنيق، أليس كذلك؟
تعد إدارة الحالة جزءًا كبيرًا من تطوير React، وفي بعض الأحيان نحتاج إلى تحديث الحالة بناءً على قيمتها السابقة. إليك سطرًا واحدًا يجعل هذا أمرًا سهلاً:
setCount(prevCount => prevCount 1);
يستخدم هذا النموذج الوظيفي لمحدد الحالة، الذي يستقبل الحالة السابقة كوسيطة.
يضمن هذا الأسلوب أنك تعمل دائمًا باستخدام أحدث قيمة للحالة، وهو أمر بالغ الأهمية في السيناريوهات التي قد يتم فيها تجميع تحديثات الحالة أو تأخيرها.
استخدم هذا عندما تحتاج إلى تحديث الحالة بناءً على قيمتها السابقة. إنها مفيدة بشكل خاص في سيناريوهات مثل العدادات، أو تبديل القيم المنطقية، أو أي موقف تعتمد فيه الحالة الجديدة على الحالة القديمة.
يعد العمل مع المصفوفات في React مهمة شائعة، خاصة عند التعامل مع قوائم العناصر. إليك سطرًا واحدًا يساعدك على إضافة عنصر إلى مصفوفة في الحالة دون تغيير الأصل:
setItems(prevItems => [...prevItems, newItem]);
يستخدم هذا عامل الانتشار لإنشاء مصفوفة جديدة تحتوي على جميع العناصر السابقة، بالإضافة إلى العنصر الجديد في النهاية.
في React، الثبات هو المفتاح للأداء والقدرة على التنبؤ. تضمن لك هذه الجملة إنشاء مصفوفة جديدة بدلًا من تعديل المصفوفة الحالية، وهو بالضبط ما تريده React.
لنفترض أنك تقوم بإنشاء تطبيق قائمة المهام. عندما يضيف مستخدم مهمة جديدة، يمكنك استخدام هذه السطر البسيط لتحديث حالتك:
const addTask = (newTask) => { setTasks(prevTasks => [...prevTasks, newTask]); };
بسيطة ونظيفة وفعالة!
على غرار المصفوفات، يعد تحديث الكائنات في الحالة عملية شائعة في React. إليك سطرًا واحدًا يتيح لك تحديث خصائص محددة لكائن ما دون تغيير الأصل:
setUser(prevUser => ({ ...prevUser, name: 'New Name' }));
يستخدم هذا عامل الانتشار لإنشاء كائن جديد بجميع خصائص المستخدم السابق، ولكنه يستبدل خاصية "الاسم" بقيمة جديدة.
يحافظ هذا الأسلوب على الثبات بينما يسمح لك بتحديث الخصائص التي تحتاجها فقط. إنه مثل القول: "احتفظ بكل شيء كما هو، باستثناء هذه التغييرات المحددة."
يتألق هذا السطر عندما تتعامل مع النماذج أو أي سيناريو حيث تحتاج إلى تحديث جزء من كائن بناءً على إدخال المستخدم أو أحداث أخرى.
المراجع في React مفيدة جدًا للوصول إلى عناصر DOM مباشرةً. إليك سطرًا واحدًا يقوم بإعداد رد اتصال المرجع:
node && node.focus()} />
يؤدي هذا إلى إنشاء عنصر إدخال يتم التركيز عليه تلقائيًا عند عرضه.
يستقبل رد الاتصال المرجع عقدة DOM كوسيطة. تتحقق هذه السطر الواحد من وجود العقدة (لتجنب الأخطاء إذا كان المرجع فارغًا) ثم تستدعي طريقة التركيز عليها.
تعتبر هذه التقنية رائعة لإنشاء نماذج يمكن الوصول إليها حيث تريد التركيز تلقائيًا على حقل الإدخال الأول عند تحميل النموذج.
قد تكون الأنماط المضمّنة في React مطولة بعض الشيء في بعض الأحيان. إليك سطرًا واحدًا يجعلها أكثر إيجازًا:
يستخدم هذا كائنًا حرفيًا لتحديد أنماط متعددة في سطر واحد.
على الرغم من أننا نفضل عمومًا فئات CSS للتصميم، إلا أن هناك أوقاتًا تكون فيها الأنماط المضمنة ضرورية أو ملائمة. تحافظ هذه السطور على JSX الخاص بك نظيفًا وسهل القراءة.
يعد هذا مفيدًا بشكل خاص للأنماط الديناميكية التي تتغير بناءً على الدعائم أو الحالة، أو للنماذج الأولية السريعة عندما لا ترغب في إعداد ملف CSS منفصل.
أسماء الفئات الشرطية هي نمط شائع في React. إليك سطرًا واحدًا يجعل هذه العملية سلسة:
يستخدم هذا قالبًا حرفيًا وعامل تشغيل ثلاثي لإضافة فئة بشكل مشروط.
تضمن السلسلة الفارغة في السلسلة الثلاثية عدم إضافة مساحة إضافية عندما يكون الشرط خاطئًا، مما يحافظ على نظافة أسماء الفصول الدراسية.
يعد هذا مثاليًا لأشياء مثل الحالات النشطة في قوائم التنقل أو تبديل الحالات المرئية بناءً على تفاعل المستخدم.
تعد حدود الأخطاء جزءًا مهمًا من تطبيقات React القوية. إليك سطرًا واحدًا ينشئ حدًا بسيطًا للخطأ:
class ErrorBoundary extends React.Component { state = { hasError: false }; static getDerivedStateFromError = () => ({ hasError: true }); render = () => this.state.hasError ?Something went wrong.
: this.props.children; }
على الرغم من أن هذه عبارة عن عبارات متعددة من الناحية الفنية في سطر واحد، إلا أنها تنشئ مكونًا كاملاً لحدود الخطأ بطريقة موجزة جدًا.
تحدد هذه السطر الواحد مكون فئة بحالة لتتبع الأخطاء، وطريقة ثابتة لتحديث الحالة عند حدوث خطأ، وطريقة عرض تعرض رسالة خطأ أو تعرض العناصر الفرعية بشكل طبيعي.
قم بلف هذا حول أي جزء من تطبيقك حيث تريد اكتشاف الأخطاء والتعامل معها بأمان، مما يمنع التطبيق بأكمله من التعطل.
أخيرًا وليس آخرًا، دعونا نلقي نظرة على سطر واحد لحفظ المكونات الوظيفية:
const MemoizedComponent = React.memo(({ prop1, prop2 }) =>{prop1} {prop2});
يؤدي هذا إلى إنشاء نسخة محفوظة من مكون وظيفي لا يُعاد عرضه إلا إذا تغيرت دعائمه.
React.memo هو مكون ذو ترتيب أعلى يتخطى العرض عندما تكون الخاصيات متماثلة، وهو ما يمكن أن يكون بمثابة تعزيز كبير لأداء المكونات التي يتم عرضها غالبًا بنفس الخاصيات.
يعد هذا أمرًا رائعًا بالنسبة للمكونات الوظيفية البحتة التي يكون عرضها باهظ التكلفة أو الموجودة في أعماق شجرة المكونات وتتلقى نفس الدعائم بشكل متكرر.
وهذا هو الحال يا رفاق! عشرة سطور قوية من React يمكن أن تجعل الكود الخاص بك أكثر وضوحًا وأكثر كفاءة، وأجرؤ على القول، أكثر متعة في الكتابة. بدءًا من العرض الشرطي وحتى حدود الأخطاء، توفر هذه المقتطفات المدمجة تأثيرًا حقيقيًا.
تذكر، على الرغم من أن هذه الخطوط البسيطة رائعة، إلا أنها ليست دائمًا الحل الأفضل لكل سيناريو. المفتاح هو فهم كيفية عملها ومتى يتم استخدامها. كما هو الحال مع كل الأمور المتعلقة بالبرمجة، يجب أن تكون سهولة القراءة وقابلية الصيانة دائمًا على رأس أولوياتك.
لذا، في المرة القادمة التي تكون فيها متعمقًا في مشروع React، جرب هذه العبارات البسيطة. قد توفر لك بعض الوقت وتجعل التعليمات البرمجية الخاصة بك أكثر أناقة قليلاً. ومن يدري؟ يمكنك أيضًا إثارة إعجاب زملائك من المطورين بمعالج React المكتشف حديثًا.
استمر في الاستكشاف، واستمر في التعلم، والأهم من ذلك، استمر في الاستمتاع مع React! بعد كل شيء، هذا ما يجعلنا مطوري واجهة المستخدم، أليس كذلك؟ برمجة سعيدة للجميع!
إذن، ما هو خط React المفضل لديك؟ هل لديك أي شخص آخر تقسم به؟ شاركها مع زملائك المطورين واستمر في المحادثة. معًا، يمكننا دفع حدود ما هو ممكن باستخدام React وإنشاء واجهات مستخدم أكثر روعة. حتى المرة القادمة، تفاعل سعيد!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3