في React، تعريف الوظيفة ذات الترتيب الأعلى هو أنه إذا كانت المعلمة التي تتلقاها وظيفة محددة هي وظيفة أخرى أو كانت قيمة الإرجاع للمكالمة لا تزال وظيفة، فإن الوظيفة المحددة تسمى دالة ذات ترتيب أعلى؛ وظائف -order هناك Promise وsetTimeout و"arr.map()" وما إلى ذلك.
بيئة تشغيل هذا البرنامج التعليمي: نظام Windows 10، إصدار التفاعل 17.0.1، كمبيوتر Dell G3.
دالة ذات رتبة أعلى: إذا كانت الوظيفة تستوفي أيًا من المواصفات التالية، فإن الوظيفة تكون دالة ذات رتبة أعلى.
1. إذا كانت المعلمة التي تستقبلها الوظيفة A هي وظيفة، فيمكن تسمية A بوظيفة ذات ترتيب أعلى.
2. إذا كانت القيمة المرجعة للدالة A لا تزال دالة، فيمكن تسمية A دالة ذات ترتيب أعلى.
تتضمن الوظائف ذات الترتيب الأعلى الشائعة ما يلي: Promise، وsetTimeout، وarr.map()، وما إلى ذلك.
الأمثلة هي كما يلي:
الحالات التالية هي وظائف ذات ترتيب أعلى
saveFormData = (event)=>{return ()=>{console.log('@');}<form onSubmit={this.handleSubmit}>اسم المستخدم:<input onChange={this.saveFormData('username' ) } type="text" name="username"/>كلمة المرور: <input onChange={this.saveFormData('password')} type="password" name="password"/><button>تسجيل الدخول</button> < / النموذج>أ. يستخدم this.saveFormData('username') القيمة المرجعة لـ saveFormData كرد اتصال لـ onChange، وليس saveFormData كرد اتصال.
ب إذا كنت تستخدم this.saveFormData('username')، فيجب أن تقوم وظيفة تعيين saveFormData بإرجاع شيء ما إلى onChange.
ج لذلك نقوم بطباعة الرمز "@" في وظيفة الإرجاع الخاصة بـ saveFormData، ثم سيتم إرجاع القيمة المطبوعة إلى onChange، وسيتم طباعة الرمز @ أثناء الإدخال في مربع الإدخال.
د.نوع البيانات الذي تم تمريره بواسطة saveFormData هو في الواقع اسم المستخدم وكلمة المرور.
هـ. ما نسميه عند الإدخال يجب أن يكون دالة الإرجاع. React هي رد الاتصال الحقيقي. تساعدني React في تمرير الحدث عند معاودة الاتصال من خلال events.target.value.
saveFormData = (dataType)=>{// console.log(dataType);return (event)=>{// console.log('@');console.log(dataType,event.target.value);}}f. يمكن إخراج المحتوى ويمكننا استخدام setState لحفظه في الحالة.
this.setState({[نوع البيانات]:event.target.value})