Amin Ataee
Amin Ataee
خواندن ۱ دقیقه·۴ سال پیش

صفر تا صد React Hooks - useEffect

خوب در این قسمت از سری مطالب React Hooks ، قصد داریم useEffect را بررسی کنیم . در قسمت قبل به این نتیجه رسیدم که درواقع useState در functional components مشابه this.setState در class components است .

در واقع میتوان componentDidMount, componentDidUpdate و componentWillUnmount ها را به وسیله ی useEffect پیاده سازی کنیم .

طبق تعریف وب سایت رسمی کتابخوانه ی React :

The Effect Hook lets you perform side effects in function components

برای درک بهتر ، به مثال زیر توجه کنید :

هوک useEffect در کد بالا دقیقا هنگام هرآپدیت count صدا زده میشود . همچنین هنگام mount شدن Counter نیز یک بار اجرا میشود . به عبارت دیگر کد بالا در class components به صورت زیر عمل میکند :

هوک useEffect یک پارامتر را به عنوان ورودی دریافت میکند . درصورتی که این پارامتر به آن ارسال نشود هم به عنوان componentDidMount و هم به عنوان componentDidUpdate عمل میکند.

ورودی های این هوک باید به صورت یک آرایه باشد . در صورتی که آرایه ارسالی خالی ارسال شود مشابه comopnentDidMount عمل میکند و در صورتی که پارامتری به آن ارسال شود در صورت تغییر مقدار آن پارامتر این هوک اجرا میشود .

به مثال زیر توجه کنید :

در شکل زیر در صورتی که مقدار count تغییر کند useEffect اجرا میشود .

و در شکل زیر هم هنگام mountشدن کامپوننت Counter ، useEffect اجرا میشود .

نکته : برای انجام عملیات مختلف از useEffect های جداگانه استفاده شود.

برای پیاده سازی componentWillUnmount نیز باید داخل useEffect یک تابع را برگردانیم. به مثال زیر توجه کنید :

در صورتی که کد بالا رو اجرا کنید متوجه خواهید شد که عبارت component will Unmount پس از هردفعه اجرای useEffect اجرا میشود ( تا آخرین اجرای useEffect cleanup بکند). در واقع این ویژگی باعث قدرتمندتر شدن useEffect نسبت به componentWillUnmount میشود.

جاوااسکریپتjavascriptprogramingreact hooksبرنامه نویسی
Software engineer
شاید از این پست‌ها خوشتان بیاید