معادل componentDidMount در قلاب ها عملکرد useEffect است. توابع ارسال شده به useEffect بر روی هر رندر مؤلفه اجرا می شوند-مگر اینکه آرگومان دوم را به آن ارسال کنید.
useEffect برای چیست؟
useEffect چه کاری انجام می دهد؟ با استفاده از این هوک، به React می گویید که کامپوننت شما باید کاری را پس از رندر انجام دهد. React تابعی را که پاس دادهاید به خاطر میآورد (از آن به عنوان «اثر» خود یاد میکنیم) و بعد از انجام بهروزرسانیهای DOM آن را فراخوانی میکند.
آیا componentDidMount یک قلاب React است؟
useEffect یک React hook است که در آن می توانید عوارض جانبی را اعمال کنید، به عنوان مثال، دریافت داده از سرور. اولین آرگومان یک callback است که پس از طرح بندی مرورگر و رنگ آمیزی فعال می شود.
چرا useEffect نامیده نمی شود؟
دلیل این اتفاق این است که فراخوانی api ناهمزمان است، بلافاصله حالت را پر نمی کند، بنابراین رندر ابتدا اتفاق می افتد و سعی می کند بخواند. جریان از وضعیت آب و هوای اولیه null. راه حل: در روش رندر خود، مطمئن شوید که آب و هوا را نخوانید.
آیا useEffect همیشه روی Mount اجرا می شود؟
مهم: قلاب useEffect همیشه بدون توجه بهاگر چیزی در آرایه وابستگی آن وجود داشته باشد روی mount اجرا می شود. احتمالاً نمیخواهیم این افکت را روی دادههای خود زمانی که تعریف نشده است اجرا کنیم (همانطور که در رندر اولیه خواهد بود) بلکه میخواهیم صبر کنیم تا از فراخوانی API پر شود.