محمد زهدی
1 سال پیش توسط محمد زهدی مطرح شد
4 پاسخ

lifecycle در vue3

داخل پروژه از api فیک استفاده کردم و توی یک کامپوننت با setup قبل از mount شدن کامپوننت اونارو میگیرم و نمایش میدم.
ولی مشکل اینجاست که یه سری تغیرات توی همون صفحه روی api های گرفته شده انجام میدم ولی وقتی که صفحه دیگری رو رندر میکنم و به صفحه قبلی که api داره برمیگردم این یبار دیگه چون mount میشه setup رو اجرا میکنه و کار هایی که اون صفحه کردم از بین میرن.چیکار کنم که فقط وقتی اول لود میشه اجرا کنه و وقتی mount میشه اون کد رو اجرا نکنه؟؟؟


ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 1 سال پیش آپدیت شد
0

نمیدونم درست متوجه شدم یا نه حالا جواب میگم اگر اشتباه گفتم شما تصحیح کن

شما یک api فیک داری که توی setup صدا میزنی و داده ها رو میگیری

حالا به فرض یک دگمه ادیت داری که باز یک کامپونت دیگه رو باز میکنه و بهش ایدی اون ایتم رو پاس میدی و داده ها رو میگیری درسته؟

حالا چون api فیک هست نمیتونی درخواست اپدیت اون ایتم رو بدی ولی میخوای وقتی برگشتی به کامپونت اصلی اینبار داده های جدید شما به فرض توی اون ردیف تغییر کنه ولی همینکه برمیگردی به کامپونت دوباره چرخه حیات کامپونت صدا زده میشه و شما عملا داده ها رو از نو لود میکنی

خب بنظر من میتونی این داده ها رو بار اول توی یک استیت ذخیره کنی و با هربار صدا زده شدن setup قبلش ببنی استیت داده ی داره یا خیر اگر داشت که درخواست api رو صدا نمیزنی اگر نبود که دادها رو میگیری و توی استیت وارد میکنی

حالا هرتغییر شما توی کامپونت edit روی استیت ذخیره میکنی و با بازگشت به صفحه قبل اگر چرخه هم باز اجرا بشه عملا دادهای استیت رو شما داری و دوباره صدا میزنی

بازم هم نمیدونم ایا درست برداشت کردم یا نه


محمد زهدی
تخصص : فرانت اند
@mohammadzhd 1 سال پیش مطرح شد
0

منظورم رو درست متوجه شدین ولی فک میکنم اینکار درست نباشه.چون توی ریکت یه متد برای این کار وجود داره و برای ویو هم حتما یه متدی به این شکل باید باشه.در کل ممنون :)


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 1 سال پیش مطرح شد
0

اسم متدی که توی ریکت استفاده کردی چی بوده؟

سناریو کار باید یکجوری این داده ها رو یکجا ذخیره کنی یا هر کامپونتی درخواست های خودش رو داشته باشه.

یک توضیح بده درباره متد و روند کارت ماهم یاد بگیریم


محمد زهدی
تخصص : فرانت اند
@mohammadzhd 1 سال پیش مطرح شد
0

از useEffect میشه استفاده کرد.که اگر به این شکل ([],{}<=())useEffect بنویسیم و براکت آخر رو خالی بزاریم فقط موقع رفرش فانکشنو اجرا میکنه.و وقتی رندر میشه هم اجرا نمیشه.https://reactjs.org/docs/hooks-effect.html اینم لینک برای مطالعه بیشتر.راجب این مورد هم آخرای صفحه توضیح داده.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام