redux vs useReducer

پرسیده شده
فعالیت 1285 روز پیش
دیده شده 395 بار
0

با سلام خدمت استاد سوری گرامی 

استاد آیا میشه این نتیجه گیری را کرد که useReducer یک جایگزین برای redux میتونه باشه؟

و این که استاد با وجود قابلیت های hook آیا میشه برای استفاده کردن از redux توی بروژه ها به جای کلاس کامبوننت از فانکشنال استفاده کرد؟

و در حالت کلی برای یه بروژه ی بزرگ شما استفاده از useReducer را بیشنهاد میکنید یا redux را؟

ممنون از شما

فایل پیوست

Soroosh
Soroosh

5 آبان 99

0
حذف شده

سلام

قبل از اینکه به پاسخ بپردازیم این نکته رو در ذهن باید داشته باشیم که انتخاب ابزار برای توسعه یک برنامه کاملا بستگی به شرایط اون پروژه داره که شرایط شامل بودجه، نیروی انسانی، زمان، شرایط رقبا و ... و نمیشه به صورت کلی یک ابزار رو برای همه پروژه توصیه یا رد کرد.

اضافه کردن redux یا هر پکیج دیگه ای به برنامه باعث افزایش پیچیدگی برنامه میشه و باید کامل بررسی بشه که این ابزار چه مشکلی رو حل میکنه که میخوایم از اون استفاده بکنیم

 

حالا می رسیم به جواب:

من موافق و مخالف redux هستم.

مقایسه redux و useReducer زیاد جالب نیست چون که امکانات یکسانی رو در اختیار ما قرار نمیدن و در یک سطح نیستن که بشه اونها رو مقایسه کرد. همین redux خودش تبدیل به یک بستری برای توسعه بقیه پکیج ها شده که برای اون نوشته شدن و این یک نکته بسیار مهم در انتخاب redux محسوب میشه

 

من شخصا در صورتی توصیه می کنم از redux یا پکیج های مشابه اون استفاده نکنید که اون تیم توسعه اولا دانش کافی، زمان، سرمایه و ... برای رفع مشکل مدیریت state رو داشته باشه و همچنین اون راه حلی که برای رفع مشکل به وجود میاد باید منطقا پیچیدگی کمتری ایجاد بکن. اگر این شرایط رو دارید میتونید از redux یا موارد مشابه استفاده نکنید.

نمونه تلاش های برخی از تیم های نرم افزاری  در شرکت های بزرگ که  نخواستن از redux استفاده بکنن رو میتونید مطالعه بکنید برخی از اونها در اولین تجربه شکست خوردن و با پیدا کردن مشکلات در نسخه بعدی که ارائه دادن مشکلات رو حل کردن و برخی از اونها هم منجر به ارائه یکسری پکیج open source شده

 

جمع بندی:

اگر پروژه بزرگ نیست و پیچدگی ندارد که قطعا نباید از redux استفاده کرد.

در غیر این صورت باید شرایط رو سنجید اگر امکان اجرای پروژه بدون redux هست این کار رو انجام بدید

 

در این مورد در سرفصل مربوط بیشتر توضیح میدم

فایل پیوست

مجتبی سوری

توسط

مجتبی سوری

6 آبان 99

جلسه useReducer (جلسه دوم)