مكونات مخفض السرعة ثنائي الوضع
تعرف على كيفية عمل مكون واحد مدفوع بالمخفض في كل من الأوضاع الخاضعة للتحكم وغير الخاضعة للتحكم دون تكرار المنطق.
مع ازدياد قابلية إعادة استخدام المكونات في قواعد بيانات React الضخمة، بات لزامًا عليها التكيف مع متطلبات الملكية المختلفة. في السياقات البسيطة، ينبغي للمكون إدارة حالته داخليًا دون تحكم في استخدامها. أما في سير العمل الأكثر تعقيدًا، أو مسارات التحليلات، أو النماذج متعددة الخطوات، أو أنظمة واجهة المستخدم المنسقة، فيجب أن يمتلك المكون الأصل الحالة بالكامل ويتحكم في استخدامها. يؤدي بناء مكونين منفصلين لهذه السيناريوهات إلى تباين في الأداء، وتكرار في المنطق، وزيادة في تكاليف الصيانة. لذا، يتمثل الهدف المعماري في تصميم مكون واحد يُحدد مُختزله قواعد السلوك، بينما يمكن أن تكون الحالة داخلية أو خارجية، اعتمادًا على الخصائص المُقدمة.
تصميم مخفض ثنائي الوضع
يتم تحديد نمط عمل المكون الذي يتم تشغيله بواسطة مُخفِّض السرعة من خلال سؤال واحد:
إذا كانت قيمة (أوchecked ،count إذا تم توفير الخاصية (إلخ)، يعمل المكون في الوضع المُتحكم به. وإلا، فإنه يعمل في الوضع غير المُتحكم به. يصف المُختزل دائمًا نفس انتقالات الحالة؛ ويتغير فقط مالك الحالة.
في وضع غير مُتحكم به:
يتجاهل المستهلك
valueدعم.يقوم المكون بتهيئة حالة المُخفِّض المحلي عبر
useReducer.تقوم معالجات الأحداث بإرسال الإجراءات الداخلية (
dispatchInternal).تُقرأ قيمة المعروضة مباشرة من حالة المُختزل الداخلي.
في وضع مُتحكم به:
يقوم المستهلك بتوفير
valueدعم.يتجاهل المكون حالة المُختزل الداخلية الخاصة به عند العرض.
يجب ألا تقوم معالجات الأحداث بتحديث الحالة الداخلية؛ بدلاً من ذلك، فإنها تستدعي
onChange(nextValue).لا يتم تحديث الحالة إلا عند إعادة عرض العنصر الأصل بالحالة الجديدة. ...