[reactjs] ما يمكن أن يكون سلبيات استخدام Redux بدلا من تدفق



2 Answers

يتطلب كل من Redux و Flux مقدارًا كبيرًا من شفرة النص المتداول لتغطية العديد من الأنماط الشائعة ، وخاصة تلك التي تنطوي على جلب البيانات غير المتزامنة. يحتوي وثائق Redux بالفعل على عدد قليل من الأمثلة لتقليل boilerplate: http://redux.js.org/docs/recipes/ReducingBoilerplate.html . يمكنك الحصول على كل ما قد تحتاجه من مكتبة Flux مثل Alt أو Fluxxor ، ولكن Redux تفضل الحرية على الميزات. قد يكون هذا جانبًا سلبيًا لبعض المطورين لأن Redux يضع بعض الافتراضات حول ولايتك التي يمكن تجاهلها عن غير قصد.

الطريقة الوحيدة التي يمكنك من خلالها الإجابة عن سؤالك هي تجربة Redux إذا كنت تستطيع ذلك ، ربما في مشروع شخصي. جاء ردوكس بسبب الحاجة إلى تجربة أفضل للمطورين ، وهو منحاز نحو البرمجة الوظيفية. إذا لم تكن على دراية بالمفاهيم الوظيفية مثل المخفضات والتركيب الوظيفي ، فقد تتباطأ ، ولكن بشكل طفيف فقط. الاتجاه الصعودي لاحتضان هذه الأفكار في تدفق البيانات هو اختبار أسهل وإمكانية التنبؤ.

إخلاء المسؤولية: لقد هاجرت من Flummox (تطبيق Flux شعبية) إلى Redux والمكاسب تفوق بكثير أي سلبيات. انا افضل اقل سحر في الكود. أقل من السحر يأتي بتكلفة أكثر قليلا ، ولكن سعرها صغير جدا.

Question

لقد اكتشفت حديثًا Redux . كل شيء يبدو جيدا. هل هناك أي سلبيات ، مسكتك أو مساومات استخدام Redux على Flux؟ شكر




يتطلب Redux الانضباط فيما يتعلق بثبات النظام. شيء يمكنني أن أوصي به هو ng-freeze لإعلامك بأي طفرة في حالة عرضية.




Flux و Redux . . .

لا يُعد تطبيق Redux تطبيق Flux تمامًا ولكنه مستوحى من Flux بالتأكيد. أكبر اختلاف هو أنه يستخدم مخزنًا واحدًا يلتف على كائن حالة يحتوي على كل حالة التطبيق الخاص بك. بدلاً من إنشاء مخازن مثل ما تفعله في Flux ، ستكتب وظائف المخفض التي ستغير حالة كائن واحد. يمثل هذا الكائن جميع الحالات في تطبيقك. في Redux ، ستحصل على الإجراء والحالة الحاليتين ، وستعيد الحالة الجديدة. هذا يعني أن الإجراءات متسلسلة والدولة غير قابلة للتغيير. هذا يقودني إلى المخالفة الأكثر وضوحا في Redux (في رأيي).

يدعم Redux مفهومًا immutable .

لماذا العفة؟

هناك أسباب قليلة لذلك:
1. تماسك - دائمًا ما يتم تغيير حالة المتجر عن طريق مخفض ، لذلك من السهل تتبع ما يغير.
2. الأداء - لأنه غير قابل للتغيير ، Redux تحتاج فقط إلى التحقق مما إذا كانت الحالة السابقة! == الحالة الحالية وإذا كان الأمر كذلك لتقديم. لا داعي لتكرار الحالة كل مرة في عملية التحديد.
3. التصحيح - مفاهيم رهيبة جديدة مثل تصحيح السفر عبر الزمن وإعادة التحميل الساخن .

تحديث: إذا لم يكن ذلك مقنعا بما فيه الكفاية ، مشاهدة لي بيرون الحديث ممتاز عن واجهات المستخدم غير قابل للتغيير .

يتطلب Redux وجود مطورين (مطورين) من خلال تعليمات البرمجة الأساسية / المكتبات للحفاظ على هذه الفكرة. ستحتاج إلى التأكد من اختيار المكتبات وكتابة التعليمات البرمجية بطريقة غير قابلة للتغيير.

إذا كنت ترغب في معرفة المزيد عن التنفيذ المختلف لمفاهيم Flux (وما الذي يعمل بشكل أفضل لاحتياجاتك) ، تحقق من this المقارنة المفيدة.

بعد أن قلت ذلك ، يجب أن أعترف بأن Redux هو المكان الذي ستطرحه JS لتطوير المستقبل (كما هو الحال بالنسبة لكتابة هذه السطور).






Related