לימוד ריאקט – מחזור החיים של קומפוננטה Component LifeCycle

לימוד ריאקט – מחזור החיים של קומפוננטה Component LifeCycle

בפיתוח אפליקציות ריאקט, הבנה מעמיקה של מחזור החיים של קומפוננטות חשובה לכתיבת קוד יעיל ונקי. במאמר זה, נדון במחזור החיים של Component מבוססי Class וקומפוננטות חדשניות יותר מבוססי פונקציות עם hooks, ונספק דוגמאות קוד והסברים לביצוע.

מחזור החיים של קומפוננטה מבוססת Class

קומפוננטות מבוססות Class בריאקט הם קומפוננטות המוגדרים כמחלקות (class components). מחזור החיים של קומפוננטות אלו כולל מספר מתודות המאפשרות לנו להתערב ולהגיב לאירועים שונים בחיי הקומפוננט.

שלבי מחזור החיים

  1. Initialization (אתחול): השלב בו הקומפוננט נבנה לראשונה.
  2. Mounting (הרכבה): השלב בו הקומפוננט מתווסף לעץ ה-DOM.
  3. Updating (עדכון): השלב בו הקומפוננט מעודכן לאחר שינוי ב-props או state.
  4. Unmounting (פריקה): השלב בו הקומפוננט מוסר מעץ ה-DOM.

פונקציות LifeCycle בקומפוננטות מבוססות CLASS

  1. constructor: מתודת האתחול של הקומפוננט. משמשת להגדרת state ראשוני וקישור מתודות.
class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = { count: 0 };
  }
}

componentDidMount: מתבצעת לאחר שהקומפוננט הורכב בעץ ה-DOM. כאן מבצעים פעולות כמו בקשת נתונים מהשרת.

componentDidMount() {
  // Fetch data or initiate animations
}

componentDidUpdate: מתבצעת לאחר עדכון הקומפוננט. ניתן להשתמש בה לביצוע פעולות בתגובה לשינויים ב-props או state.

componentDidUpdate(prevProps, prevState) {
  if (this.state.count !== prevState.count) {
    // Perform actions based on state change
  }
}

componentWillUnmount: מתבצעת לפני שהקומפוננט מוסר מעץ ה-DOM. כאן נבצע פעולות ניקוי כמו ביטול מנויים או טיימרים.

componentWillUnmount() {
  // Clean up code
}

מחזור החיים של קומפוננטים מבוססי פונקציות עם hooks

עם הצגת hooks בריאקט 16.8, ניתן לנהל state ולשלוט במחזור החיים של קומפוננטים פונקציונליים.

תוכלו לקרוא על שימוש ב Hooks בהרחבה במדריכים אלו:

React Hooks חלק 1

React Hooks חלק 2

שימוש ב-useEffect

ה-hook המרכזי לניהול מחזור החיים בקומפוננטות מבוססות הוא useEffect. הוא מאפשר לנו לבצע פעולות בעת הרכבת הקומפוננט, עדכונו ופריקתו.

הרכבה ועדכון

    useEffect(() => {
      // Perform actions on mount and update
      return () => {
        // Clean up actions on unmount
      };
    }, [dependencies]); // dependencies array controls when the effect runs
    

    הרכבה בלבד

    useEffect(() => {
      // Perform actions on mount
    }, []); // Empty dependencies array ensures this runs only once
    
    

    פריקה

    useEffect(() => {
    return () => {
    // Perform actions on unmount
    };
    }, []); // Clean up code on unmount

    דוגמא מלאה

    ניצור קומפוננט שמשתמש ב-useEffect לביצוע פעולות בהרכבה, עדכון ופריקה.

    import React, { useState, useEffect } from 'react';
    
    const Counter = () => {
      const [count, setCount] = useState(0);
    
      useEffect(() => {
        console.log('Component mounted');
        
        return () => {
          console.log('Component unmounted');
        };
      }, []);
    
      useEffect(() => {
        console.log(`Count updated: ${count}`);
      }, [count]);
    
      return (
        <div>
          <p>Count: {count}</p>
          <button onClick={() => setCount(count + 1)}>Increment</button>
        </div>
      );
    };
    
    export default Counter;
    

    סיכום

    במאמר זה סקרנו את מחזור החיים של קומפוננטות בריאקט, הן בקומפוננטות מבוססות CLASS והן בקומפוננטות חדשניות מבוססי פונקציות עם hooks. הבנה של מחזור החיים של קומפוננטות ויישום נכון של מתודות מחזור החיים או hooks תעזור לכם לכתוב קוד נקי ויעיל יותר, ולשפר את ביצועי האפליקציות שלכם.

    אם אתם רוצים ללמוד עוד על React ונושאים מתקדמים נוספים, מוזמנים להתייץ איתנו על קורס React

    שתפו את הפוסט

    דילוג לתוכן