زمان استفاده از Redux


یکی از سوالاتی که اکثر توسعه دهنده ها میپرسن اینکه زمان استفاده از Redux چه موقع است.به طور معمول گرایش اینکه از Redux در ابتدای پروژه استفاده کنید اما در تجربه من این رویکرد کمی بیش از حد و غیرمعمولی است.actions و reducers بطور قابل توحهی حجم کدزنی شما رو زیاد میکنه،بنابراین ما باید یک سری معیارها برای استفاده از Redux تعیین کنیم.
دلایل استفاده از Redux :
1.بعضی از state ها باید بین چندین کامپوننت به اشتراک گزاشته بشه.یک مثل خوب در این مورد session state ها است.زمانی که اپلیکشن load میشه،معمولا یک سری اطلاعات کاربر نیازه که بین چندین کامپوننت مختلف share بشه.به احتمال خیلی زیاد این کامپوننت ها هیچ ارتباط مستقیمی با هم ندارند بنابراین Redux یک راه حل متاسب برای به اشتراک گزاشتن state ها است.
2.کامپوننت های Global که میتوانند از هر جایی و نقطه ای دسترسی پیدا کنند.در اپلیکیشن ها کارهایی مثل نمایش اعلان ها،راهنمایی ها و آموزش تعاملی بسیار رایج است.با استفاده از Redux شما میتونید یک Action ایجاد کنید که یک سری دستورات رو به کامپوننت dispatch میکنه.به طور مثال اگر کد شما یک درخواست asynchronous سمت سرور داره،میتونه dispatch بشه و درصورت fail بودن درخواست یک snackbar action نمایش داده بشه.
3.تعداد بیش از حد props ها که از طریق یک سلسله مراتب بین کامپوننت ها pass داده میشه.سناریویی رو در نظر بگیرید که شما در بالاترین سطح کامپوننت یک درخواست سمت سرور فرستادید و یک سری اطلاعات رو دریافت کردید.حالا برای ویرایش باید این اطلاعات به یک کامپوننت دیگه ارسال بشه و برای تغییر یک سری آیتم های خاص به یک کامپوننت دیگه با props پاس داده بشه.این props ها باعث سردرگمی و همچنین کدزنی به اصطلاح کثیف میشه ولی با Redux شما خیلی راحت میتونید به هر بخشی از اطلاعات که نیاز دارید دسترسی داشته باشید و خیلی راحت عملیات های مورد نظرتون رو بر روی این اطلاعات انجام بدید.
4.جداسازی منطق برنامه از رابط کاربری.هر کامپوننت بیش از صدها خط کد دارد که درک کردن این کدها و همچنین برطرف کردن bug در صورتی که منطق از رابط کاربری جدا نشده باشه،خیلی سخت و وقت گیره.با استفاده از Redux شما میتونید خیلی راحت ویژگی های جدیدی رو اضافه کنید و هر چقدر هم پروژه بزرگ بشه به مشکل نخورید.همچنین اگه کدهای شما در اختیار تیم دیگه ای قرار بگیره،خیلی راحت میتونن باهاش کناربیان و به توسعه کدهای شما بپردازند و دعای خیرشون پشت سر شما باشه.
5.کش کردن page state.زمانی که کاربر یک سری کارها و عملیات هایی رو در یک page انجام میده و به یک page دیگه میره و برمیگرده،معمولا انتظار داره صفحه در همون حالت باشه.برخی از این ها رو میشه سمت سرور ذخیره کرد و در بارگذاری مجدد page این اطلاعات رو دریافت کرد اما بعضی از چیزها مثل مقدار وارد شده در نوار جستجو رو نمیشه در سرور ذخیره کرد و مجددا این مقدار رو برگردوند.
اگر پروژه ای رو در دست دارید که زیاد بزرگ نیست یا در مولفه های بالا قرار نمیگیره،لازم نیست از Redux استفاده کنید و setState گزینه مناسبی است.همچنین اگر تازه شروع به کار با React Native کردید،خودتون رو درگیر Redux نکنید،چون درک Redux سنگینه و ممکن شما رو ناامید کنه.بعد از یک مدت کار با React Native باقدرت به سمت Redux بیاید و کار با این state management رو یاد بگیرید.برای یادگیری این کتابخانه میتونید از آموزش Redux موجود در سایت استفاده کنید.
دیدگاهتان را بنویسید