دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۳۰
  • تیر

جلسه ۰۸ : چرخه عمر کامپوننت ها در React JS

  • دسته‌بندی‌ها :
جلسه ۰۸ : چرخه عمر کامپوننت ها در React JS

        با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
        با جلسه ای دیگر از سری جلسات دوره آموزش React JS در خدمت شما عزیزان هستیم.
        در این جلسه قصد داریم به آموزش چرخه عمر کامپوننت ها در React JS بپردازیم.

        چرخه عمر کامپوننت ها در React JS

        هر کامپوننت در React JS دارای یک چرخه عمر است که شما می‌توانید در سه فاز بر آن ها نظارت داشته باشید و آن ها را دستکاری کنید.

        این سه فاز یا بخش عبارتند از:

        • Mounting (استقرار)
        • Updating (بروزرسانی)
        • UnMounting (انحلال)

        Mounting

        Mounting به معنای گذاشتن کامپوننت ها در DOM است.

        در این مرحله ۴ متد داخلی React فراخوانی می‌شود:

        1. ()constructor
        2. ()getDerivedStateFromProps
        3. ()render
        4. ()componentDidMount

        در این بین متد ()render همیشه توسط خود React فراخوانی می‌شود.
        سایر متد ها اختیاری هستند و در صورتی فراخوانی می‌شوند که شما آن ها را تعریف کرده باشید.

        constructor

        تابع سازنده اولین تابعی است که اگر تعریف شده باشد، اجرا می‌شود. این تابع هنگام پایه ریزی اولیه کامپوننت ها اجرا می‌شوند.

        تابع سازنده همیشه باید شی props را به عنوان آرگومان دریافت کند.

        مثال:

        مثال : 

        getDriverdStateFromProps

        این تابع درست قبل از رندر المان ها توسط شی DOM اجرا می‌شود.

        در این تابع می‌توان شی state را بر اساس شی props مقداردهی کرد.

        این تابع اشیاء state و props را به عناون آرگومان می‌پذیرد.

        مثال:

        مثال : 

        خروجی:

        مثال : 

        render

        این تابع توسط خود React JS فراخوانی می‌شود. این تابع خروجی html را تحویل DOM می‌دهد.

        مثال:

        مثال : 

        componentDidMount

        این تابع بعد از اینکه کامپوننت رندر شد، اجرا می‌شود.

        در اینجا می‌توانید دستوراتی را که لازم می‌بینید بعد از قرار داده شدن کامپوننت در DOM اجرا شود (رندر شود)، بنویسید.

        در مثال زیر بعد از یک ثانیه که کامپوننت رندر شد، متن h1 تغییر می‌کند:

        مثال : 

        Updating

        فاز بعدی در چرخه عمر یک کامپوننت وقتی است که آپدیت می‌شود.

        یک کامپوننت وقتی آپدیت می‌شود که تغییری در state یا prop های آن رخ دهد.

        ۵ متد در این فاز درگیر اجرا هستند:

        • ()getDrivedStateFromProps
        • ()shouldComponentUpdate
        • ()render
        • ()getSnapshotBeforeUpdate
        • ()componentDidUpdate

        در این نیز تابع render توسط خود react اجرا و فراخوانی می‌شود. سایر توابع را اگر تعریف کرده باشیم، اجرا می‌شوند.

        getDerivedStateFromProps

        این تابع اولین تابعی است که پس از آپدیت یک کامپوننت اجرا می‌شود.

        همانطور که گفتیم، در این تابع می‌توان شی state را بر اساس شی props مقداردهی کرد.

        این تابع اشیا state و props را به عنوان آرگومان می‌پذیرد.

        مثال : 

        خروجی:

        مثال : 

        shouldComponentUpdate

        این متد یک مقدار بولین برمی‌گرداند که مشخص می‌کند آیا کامپوننت بعد از تغییر state ها یا prop ها باید تغییر(رندر) کند یا نه.

        مقدار پیش‌فرض true است.

        در مثال زیر اگر ما بر روی دکمه کلیک کنیم، کامپوننت رندر نمی‌شود. (زیرا متد مقدار false برمی‌گرداند)

        مثال : 

        render

        این تابع نیز خروجی html را در DOM قرار می‌دهد.

        مثال : 

        getSnapShotBeforeUpdate

        در این متد شما به مقادیر state و props قبل از آپدیت دسترسی دارید. یعنی حتی بعد از آپدیت کامپوننت هم می‌توانید مقادیر قبلی اشیا مذکور را چک کنید.

        اگر این مد را تعریف کردید، باید متد ()componentDidUpdate را نیز تعریف کنید در غیز این صورت خطا دریافت خواهید کرد.

        این متد دو پارامتر به نام های prevState و prevProps دارد یک به مقادیر قبلی آن ها اشاره دارند.

        در مثال زیر کامپوننت وقتی mount می‌شود، favoritecolor مقدار red را دراختیار دارد.
        بعد از یک ثانیه مقدار favoritecolor به yellow تغییر می‌کند و کامپوننت آپدیت می‌شود.
        همچنین در این مرحله مقدار قبلی favoritecolor را به کاربر نشان می‌دهیم.

         

        مثال : 

        خروجی هنگام mount شدن کامپوننت:

        مثال : 

        خروجی پس از یک ثانیه:

        مثال : 

        componentDidUpdate

        این متد بعد از اینکه کامپوننت در DOM بروزرسانی شد، اجرا می‌شود.

        در مثال پایین پس از این که کامپوننت آپدیت شد، تگ mydiv مقدار بروز شده را نمایش می‌دهد.

        مثال : 

        Unmounting

        آخرین فاز در چرخه عمر کامپوننت ها در React JS ، فاز Unmounting نام دارد.

        این فاز به وقتی که کامپوننت از DOM حذف شود اشاره دارد.

        در این فاز تنها یک متد اجرا می‌شود: ()componentWillUnmount

        در مثال زیر پس از اینکه کامپوننت unmount شد، هشداری را با استفاده از متد فوق به کاربر نمایش می‌دهیم.

        مثال : 

         

        جلسه آموزش چرخه عمر کامپوننت ها در React JS نیز به پایان رسید.

        در جلسه بعد به آموزش رویداد ها در React JS خواهیم پرداخت.

        QR:  جلسه ۰۸ : چرخه عمر کامپوننت ها در React JS
        به اشتراک بگذارید


        دیدگاه کاربران
        1. تصویر کاربر