هومن امینی
هومن امینی
خواندن ۲ دقیقه·۴ سال پیش

چرا ری‌اکت هوک

قبل از استفاده از هر ابزار و یا تکنولوژی، باید این سئوال ها را از خودمان بنماییم

  • چرا این وجود دارد
  • چه مشکلی را حل می نماید؟

درباره ری اکت هوک هم این سئوال مصداق دارد.

ایده اصلی ری اکت این بوده که پیچیدگی اپلکیشن ها را بوسیله تقسیم آن به کامپوننت های مجزا مدیریت کنیم، اما تقسیم صرفا اپلکیشن به کامپوننت ها نیاز ما را جواب نمی دهید و ما همچنین نیاز داریم منطق و یا logic ها را بین کامپوننت ها به اشتراک بگذاریم که به اصطلاح به آن sharing non visual logic می گویند.

از جمله لاجیک های که لازم داریم بین کامپوننت ها به اشتراک بزاریم

منطق مدیریت state کامپوننت ها

منطق مدیریت چرخه حیات کامپوننت ها

و یا منطق های خاص بیزنس ما

جهت این موضوع راحت ترین کار copy & paste است که روش خوبی نیست و مدیریت آن سخت است.

اما الگوی های برای این موضوع وجود دارد مانند Higher Order Component که در آن یک کامپوننت می سازیم که کامپوننت های دیگر را به عنوان پارامتر قبول می کند و یک سری لاجیک مشترک را به آنها اضافه می کند و یا به عبارتی برای منطق های مشترک HOC های مختلف درست می کنیم و از این طریق اشتراک گذاری لاجیک های مشترک را مدیریت می کنیم.

و یا الگوی یا pattern دیگر به نام Render Props که از حوصله بحث ما خارج است و می توانید به مستندات آن مراجعه فرمایید.

اما در هر صورت، فهم دو الگو فوق و استفاده از آنها پیچیده و سخت است.

اما api که ری اکت برای این موضوع در اختیار ما قرار داده که هم ساده، قابل ترکیب، قابل انعطاف و توسعه پذیر است هوک است.

که چند تا آنها در ری اکت آماده شده است به عنوان مثال useState جهت مدیریت state ها و useEffect جهت مدیریت چرخه حیات کامپوننت

اما شاه بیت این قضیه این است که شما می توانید لاجیک و منطقی که خاص بیزنس خودتان است را به صورت هوک دربیارید و آن را قابل استفاده مجدد نمایید.

به عنوان مثال جهت منطق fetch داده ها می توانیم یک هوک مانند زیر بنویسیم.

و به سادگی در کامپوننت های مختلف به شکل زیر آن را صدا نماییم.


جاوااسکریپتری اکتری‌اکتبرنامه نویسی وبهوک
برای یادداشت اینجا می نویسم اگر بدرد کسی هم خورد تو روحم گل باز میشه - مهندس نرم افزار - توسعه دهنده وب در فناپ
شاید از این پست‌ها خوشتان بیاید