• 1400/07/25

چرخه حیات در کامپوننت کلاسی :

سلام استاد ئقت به خیر 

با تشکر از تمام زحماتی که برای ما میکشید : 

3 تا سوال داشتم : 

1 : استفاده از react-bootstrap چه مزیتی نسبت به bootstrap داره ؟ 

.

.

2 : شما فرمودین خود این که یک یا چند تا ( تعداد کم ) Component کلاسی داشته باشیم و بیشتر Component های تابعی داشته باشیم یک نوع Design Pattern هست ولی وقتی وارد چرخه حیات شدیم برای استفاده از اون در  Component های کلاسی مجبور شدیم و استفاده از Method های componentWillUnmount() و shouldComponentUpdate کامپوننت های Person و Persons رو هم به نوع کلاسی تبدیل کنیم . ( میخوام بدونم میشه برای استفاده از Method های Lifecycle در فایل App.js ( با فرض این که کامپوننت App.js کلاسی هست و بقیه Component ها تابعی هستند) ) استفاده کرد و برای دیگر Component ها که تایعی هستند Lifecycle رو به روش تابعی پیاده کرد یا خیر ؟ ( یعنی آیا میشه Lifec رو در یک کامپوننت به شکل کلاسی و در دیگر Component ها به شکل تابعی پیاده کرد؟ , یا همه باید یا کلاسی باشد یا تابعی ؟)

.

.

3 : shouldComponentUpdate(nextProp, nextState) {
        console.log("Persons.jsx shouldComponentUpdate()");
        if (nextProp.persons !== this.props.persons) {
            return true;
        } else {
            return false;
        }
    }

استاد در این کد آیا هدف این هست که جلوی کاربر تکراری رو بگیریم یا چی هست استاد ؟

با تشکر فراوان

  • 1400/07/25
  • ساعت 22:56

سلام دوست من

1- به صورت کامپوننت در اختیارت قرار میده تا اینکه دونه دونه کلاس بنویسی

2-میشه پیاده سازی کرد برای چرخه حیات های اصلی در هر 2 نوع

3-جلوگیری از تکرار هست - چک کردیم که اگر props جدید persons که برای بروزرسانی به دستمون رسیده با قبلیه یکی باشه یعنی تغییر ایجاد نشده پس چرخه بروزرسانی انجام نشه در غیر این صورت انجام بشه


  • 1400/07/25
  • ساعت 23:07

استاد اگه برای این هست که اسم یا کار تکراری وارد نکنیم :

ولی استاد وقتی خودتون چک کردین و یه اسم رو دوباره تکراری نوشتید Update شد

یعنی یه بار نوشتید یونس و enter زدین و یه نفر اضافه شد ولی دوباره هم یونس نوشتید و enter شد دوباره یونس اضافه شد و جلوگگیری از تکرار نشد

2 : و این که استاد از کجا باید تشخیص بدیم که هر یک از method های چرخه رو در کدوم فایل قرار بدیم؟

با تشکر


  • 1400/08/06
  • ساعت 13:54

نباید انجام میشد

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

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


logo-samandehi