لقد كنت أشاهد دروس Dan's Redux التعليمية على egghead وتذكر نصيحة واحدة مفادها أنه إذا كان المكون الرئيسي لا يستخدم بعض البيانات ولكنه يحتاجها فقط لتمريرها إلى الأطفال - فلا تفعل ذلك. استخدم connect
أكثر من المكون الفرعي الذي يحتاج إلى هذه البيانات.
تعجبني هذه النصيحة لأنني أكره تمرير الكثير من البيانات عبر الدعائم. اعتقدت أن هذا نهج شائع الاستخدام ، لكنني كنت مؤخرًا أنفذ مشروع "mini twitter" كمهمة اختبار للشركة التي تستخدم redux في مشروعها وهذا هو سبب رغبتي في العمل هناك.
لكن تم رفض الكود الخاص بي لأن "React-way تحتوي أيضًا على الحد الأقصى من المكونات الغبية". هل هذا صحيح؟
هذا هو الكود الخاص بي إذا أراد شخص ما إلقاء نظرة https://bitbucket.org/amorphius/minitwitter/overview
لذا ، فإن سبب التعرف عليه باعتباره رمزًا سيئًا هو وجود عدد كبير جدًا من connect
في الكود.
أين هو الوسيط السعيد؟
اعتدنا أن نقول إن وجود مكونات أقل اتصالًا أفضل في الإصدارات السابقة من المستندات ، لكنني لم أتوقع مقدار عبادة الشحن التي ستصبح. 😞 نعم ، غالبًا ما يكون توصيل كل مكون مبالغة ، ولكن وضع كل شيء في القمة كذلك! الاتصال فقط من أجل الحصول على dispatch
غير ضار بشكل خاص ، لذا يجب ألا تشعر بالسوء حيال القيام بذلك كثيرًا.
كودك يبدو جيدا تماما بالنسبة لي 👍
شكرا لك. على الأقل لدي الآن حجة قوية بأن الكود الخاص بي جيد وربما أحصل على وظيفة في شركة أفضل :)
ولكن ما زلت لا أستطيع تصوير سيناريو حيث connect
مبالغ فيه. كيفية تطوير هذه المهارة لمعرفة القاعدة التي يجب علي كسرها إما تمرير البيانات من التحكم الأبوي الذي لا يستخدم هذه البيانات للتحكم في الأطفال أو الحصول على connect
في الكود (خاصة إذا كان يقرأ جزءًا صغيرًا من البيانات من المتجر)؟
ما نوع المشاكل التي ستظهر مع العديد من connect
في التطبيق؟
عملية إخطار المشترك في Redux عبارة عن حلقة بسيطة تقوم بتشغيل كل رد اتصال مشترك ، لذلك من الواضح أن هذا هو O (n). من الناحية النظرية ، إذا كانت عمليات رد نداء المشتركين تقوم بشيء معقد ، أو إذا زاد عدد المشتركين _ بشكل كبير_ جدًا ، فقد يصبح ذلك مشكلة في الأداء.
من الناحية العملية ، ربما لا يكون هذا مصدر قلق كبير. أظن أنه يجب أن يكون لديك عدة آلاف من الاشتراكات النشطة ، مع إرسال العديد من الإجراءات في الثانية ، قبل أن تصبح مشكلة واقعية. لا أعرف أي معايير محددة في الوقت الحالي يمكنني الإشارة إليها للتحقق من ذلك ، على الرغم من ذلك (ما لم تكن مقارنة MobX / Redux الأخيرة متعلقة بذلك).
بشكل عام ، أعتقد أنه يجب أن تكون آمنًا باتباع النهج الكلاسيكي "اجعله يعمل ، اجعله صحيحًا ، اجعله سريعًا". اكتب الكود الذي يجعل ميزات التطبيق الخاص بك تعمل بشكل صحيح. انظر إلى ما كتبته وقم بتعديل الهيكل إذا لزم الأمر بحيث يكون أكثر منطقية. إذا بدا الأمر بطيئًا ، فقم بالقياس والقياس ، وإصلاح الأجزاء البطيئة بالفعل.
التعليق الأكثر فائدة
اعتدنا أن نقول إن وجود مكونات أقل اتصالًا أفضل في الإصدارات السابقة من المستندات ، لكنني لم أتوقع مقدار عبادة الشحن التي ستصبح. 😞 نعم ، غالبًا ما يكون توصيل كل مكون مبالغة ، ولكن وضع كل شيء في القمة كذلك! الاتصال فقط من أجل الحصول على
dispatch
غير ضار بشكل خاص ، لذا يجب ألا تشعر بالسوء حيال القيام بذلك كثيرًا.كودك يبدو جيدا تماما بالنسبة لي 👍