سلام
خسته نباشید استاد
عذر میخوام توی این قسمت که از async await برای دریافت دیتا با axios استفاده شده، میخواستم بدونم آیا لازمه حتما بصورت async await بنویسیم هوک useEffect و تابع داخل اون رو؟
در واقع ما وقتی توی return کامپوننت داریم conditional rendering انجام میدیم خواه ناخواه async await رو پیاده کردیم دیگه (ینی تا زمانی که دیتا توی متغیرمون ست نشده نمایش نمیده در صفحه؛ ینی صبر میکنه دیتا برگرده و بعد نمایش بده. عملا این میشه همون تعریف async await!) درست هستش دیدگاهم؟
سلام وقت بخیر.
بحث async await برای زمانی هست که شما درخواست به api میزنید و مدت زمانی طول میکشه، برای درک بهتر دوره آموزش Asynchronous Javascript پروژه محور را مشاهده کنید که پیش نیاز این دوره هم هست. پیش نیاز دوره ها را باید حتما کار و تمرین کرده باشید.
ممنونم از پاسختون
بنده دوره ای که فرمودید رو تهیه کردم از آموزش های خوبتون و دیدم پیش نیازها رو و آشنا هستم با نحوه کار async و await
حرف بنده این هستش که ما وقتی دیتا رو چه بصورت معمولی چه بصورت async میگیریم و توی متغیری ست میکنیم، چون توی رندر در کامپوننت، اون متغیر رو بصورت کاندیشنال رندر میکنیم دیگه عملا انگار داریم async رو استفاده میکنیم دیگه! (ینی در رندرینگ میگیم اگر متغیر ایکس true بود بیا نشون بده دیتا ها رو، اگر دیتا هنوز ست نشده بود از api مثلا لودینگ نمایش بده)
ببینید تفاوت اینجا هست که شما با بحث async و await این قابلیت را دارید که زمانیکه دیتا آمد متغیر x مقدارش الان true باشه یا false و با توجه به اون کاری انجام بدید. اما بدون این مبحث چطوری مقدار متغیر x را بعد از دریافت دیتا تغیر میدید؟
با استفاده از fetch کردن ساده (بدون async await) دیتا رو میگیریم و بعد از .then میگیم ست کنه در متغیر و همزمان setloading رو هم که در مقدار اولیه ش true بود رو false میکنیم
و در صفحه سایت وقتی میگیم اگر لودینگ true بود نمایش بده و اگر متغیر x true شد نمایش بده و لودینگ رو false کن، یعنی تا زمانی که دیتا برنگشته لودینگ رو نشون میده و به محض اینکه دیتاها رسید اون ها رو بجای لودینگ نمایش میده دیگه!
من تمرین های این پروژه رو بدون async await (صرفا جهت اطمینان از درستی نظر خودم) انجام دادم و مشکلی پیش نیومد و بهمین دلیل سوال شد واسم
زمانیکه شما از then استفاده میکنید، دارید از همین مبحث asynchronous استفاده میکنید که توی ورژن های جدیدتر به شکل async await هم نوشته میشه، دوتاش یک کاری انجام میده و نحوه نوشتنش متفاوت هست. بازم عرض میکنم پیش نیاز دوره ها مهم هستند و نیاز به کار و تمرین داره
saeednk72
سلام
خسته نباشید استاد
عذر میخوام توی این قسمت که از async await برای دریافت دیتا با axios استفاده شده، میخواستم بدونم آیا لازمه حتما بصورت async await بنویسیم هوک useEffect و تابع داخل اون رو؟
در واقع ما وقتی توی return کامپوننت داریم conditional rendering انجام میدیم خواه ناخواه async await رو پیاده کردیم دیگه (ینی تا زمانی که دیتا توی متغیرمون ست نشده نمایش نمیده در صفحه؛ ینی صبر میکنه دیتا برگرده و بعد نمایش بده. عملا این میشه همون تعریف async await!) درست هستش دیدگاهم؟
علی شیخ
2 سال پیش
سلام وقت بخیر.
بحث async await برای زمانی هست که شما درخواست به api میزنید و مدت زمانی طول میکشه، برای درک بهتر دوره آموزش Asynchronous Javascript پروژه محور را مشاهده کنید که پیش نیاز این دوره هم هست. پیش نیاز دوره ها را باید حتما کار و تمرین کرده باشید.
saeednk72
2 سال پیش
ممنونم از پاسختون
بنده دوره ای که فرمودید رو تهیه کردم از آموزش های خوبتون و دیدم پیش نیازها رو و آشنا هستم با نحوه کار async و await
حرف بنده این هستش که ما وقتی دیتا رو چه بصورت معمولی چه بصورت async میگیریم و توی متغیری ست میکنیم، چون توی رندر در کامپوننت، اون متغیر رو بصورت کاندیشنال رندر میکنیم دیگه عملا انگار داریم async رو استفاده میکنیم دیگه! (ینی در رندرینگ میگیم اگر متغیر ایکس true بود بیا نشون بده دیتا ها رو، اگر دیتا هنوز ست نشده بود از api مثلا لودینگ نمایش بده)
علی شیخ
2 سال پیش
ببینید تفاوت اینجا هست که شما با بحث async و await این قابلیت را دارید که زمانیکه دیتا آمد متغیر x مقدارش الان true باشه یا false و با توجه به اون کاری انجام بدید. اما بدون این مبحث چطوری مقدار متغیر x را بعد از دریافت دیتا تغیر میدید؟
saeednk72
2 سال پیش
با استفاده از fetch کردن ساده (بدون async await) دیتا رو میگیریم و بعد از .then میگیم ست کنه در متغیر و همزمان setloading رو هم که در مقدار اولیه ش true بود رو false میکنیم
و در صفحه سایت وقتی میگیم اگر لودینگ true بود نمایش بده و اگر متغیر x true شد نمایش بده و لودینگ رو false کن، یعنی تا زمانی که دیتا برنگشته لودینگ رو نشون میده و به محض اینکه دیتاها رسید اون ها رو بجای لودینگ نمایش میده دیگه!
من تمرین های این پروژه رو بدون async await (صرفا جهت اطمینان از درستی نظر خودم) انجام دادم و مشکلی پیش نیومد و بهمین دلیل سوال شد واسم
علی شیخ
2 سال پیش
زمانیکه شما از then استفاده میکنید، دارید از همین مبحث asynchronous استفاده میکنید که توی ورژن های جدیدتر به شکل async await هم نوشته میشه، دوتاش یک کاری انجام میده و نحوه نوشتنش متفاوت هست. بازم عرض میکنم پیش نیاز دوره ها مهم هستند و نیاز به کار و تمرین داره