آفلاین
user-avatar

چرخه حیات ری اکت

2 سال پیش
توسط حسام موسوی آپدیت شد
آفلاین
user-avatar
developer ( 33462 تجربه )
2 سال پیش
تخصص : برنامه نویس

توی ری اکت نیتیو کجا باید از componentWillMount و کجا باید از componentDidMount استفاده کنیم؟ فرقشون چیه در عمل؟

بهترین پاسخ انتخاب شده توسط developer
آنلاین
user-avatar
حسام موسوی
2 سال پیش

ببینید componentWillMount کاملا شبیه به متد سازنده یک کلاسه یعنی constructor زمانی که component بوجود میاد صدا زده میشه و هیچ نقشی در re-render کردن ویو شما نمیتونه داشته باشه چون همونطور که گفتم قبل از همه چیز مثل constructor صدا زده میشه .
مثلا شما میخواید زمان ساخت یک کامپوننت رو ذخیره سازی کنید . از کد زیر استفاده میکنید

componentWillMount() {
  this.setState({ todayDate: new Date(Date.now())});
}

اما زمانی که بخواید زمانی که کامپوننت شما ایجاد شد هر چند ثانیه اطلاعاتی رو از سرور بگیره و view های شما دوباره render بشه از componentDidMount استفاده میکنید به همین سادگی . کد زیر رو ببینید

componentDidMount() {
  this.interval = setInterval(this.fetchNews, 3600000);
}
آنلاین
user-avatar
حسام موسوی ( 382959 تجربه )
2 سال پیش
تخصص : طراح و برنامه نویس

ببینید componentWillMount کاملا شبیه به متد سازنده یک کلاسه یعنی constructor زمانی که component بوجود میاد صدا زده میشه و هیچ نقشی در re-render کردن ویو شما نمیتونه داشته باشه چون همونطور که گفتم قبل از همه چیز مثل constructor صدا زده میشه .
مثلا شما میخواید زمان ساخت یک کامپوننت رو ذخیره سازی کنید . از کد زیر استفاده میکنید

componentWillMount() {
  this.setState({ todayDate: new Date(Date.now())});
}

اما زمانی که بخواید زمانی که کامپوننت شما ایجاد شد هر چند ثانیه اطلاعاتی رو از سرور بگیره و view های شما دوباره render بشه از componentDidMount استفاده میکنید به همین سادگی . کد زیر رو ببینید

componentDidMount() {
  this.interval = setInterval(this.fetchNews, 3600000);
}
برای ارسال پاسخ باید وارد سایت شوید