המדריך האולטימטיבי ל-React

0 סקציות
חזרה לקורס React כל הקורסים

⚛️ מבוא ל-React

React היא ספריית JavaScript לבניית ממשקי משתמש (UI), שפותחה על ידי פייסבוק. היא מתמקדת בבניית קומפוננטות (רכיבים) לשימוש חוזר וניהול יעיל של עדכוני DOM באמצעות Virtual DOM.

למה React?

  • קומפוננטות: פיצול הממשק לחלקים קטנים ועצמאיים.
  • Virtual DOM: עדכון יעיל של ה-DOM האמיתי רק איפה שצריך, לביצועים גבוהים.
  • Declarative: כתיבת קוד שמתאר "מה" להציג, וריאקט דואגת ל"איך".
  • Ecosystem: קהילה עצומה וספריות רבות.

שלום עולם ב-React

בדוגמה זו נראה קומפוננטה פשוטה שמציגה טקסט. שימו לב לשימוש ב-JSX (תחביר דמוי HTML בתוך JS).

📝 JSX

JSX הוא הרחבת תחביר ל-JavaScript שמאפשרת לכתוב HTML בתוך קוד JS. זה נראה כמו HTML, אבל זה בעצם סוכר תחבירי לקריאות פונקציה של React.

חוקים חשובים ב-JSX

  • חייב להיות אלמנט אב אחד (או Fragment <>...</>).
  • תגיות חייבות להיסגר (למשל <br />).
  • שימוש ב-className במקום class (כי class היא מילה שמורה ב-JS).
  • שימוש בסוגריים מסולסלים {} להטמעת ביטויים של JavaScript.

דוגמה ל-JSX דינמי

🧩 קומפוננטות (Components)

קומפוננטות הן אבני הבניין של אפליקציית React. כיום נהוג להשתמש ב-Functional Components (פונקציות) ולא ב-Class Components.

מבנה קומפוננטה
function MyComponent() {
  return (
    <div>
      <h1>התוכן שלי</h1>
    </div>
  );
}

שם הקומפוננטה חייב להתחיל באות גדולה!

🎁 Props (Properties)

Props הם הדרך להעביר מידע מקומפוננטת אב לקומפוננטת ילד. הם לקריאה בלבד (Read-Only) ולא ניתן לשנות אותם בתוך הילד.

💾 State (useState)

State הוא הזיכרון של הקומפוננטה. בניגוד ל-Props, ה-State הוא פרטי לקומפוננטה וניתן לשינוי. כשמשנים את ה-State, ריאקט מרנדרת מחדש את הקומפוננטה.

משתמשים ב-Hook שנקרא useState.

⚡ Effects (useEffect)

useEffect מאפשר לבצע "תופעות לוואי" (Side Effects) בקומפוננטה, כמו קריאות לשרת, מניפולציות על ה-DOM, או טיימרים.

הוא רץ אחרי כל רינדור, אלא אם כן מגדירים לו מערך תלויות.

  • useEffect(() => { ... }): רץ אחרי כל רינדור.
  • useEffect(() => { ... }, []): רץ רק פעם אחת (בטעינה).
  • useEffect(() => { ... }, [prop, state]): רץ כשהערכים במערך משתנים.

🖱️ אירועים (Events)

טיפול באירועים ב-React דומה ל-HTML רגיל, אבל עם תחביר camelCase (למשל onClick במקום onclick) ומעבירים פונקציה ממש ולא מחרוזת.

📋 רשימות (Lists)

כדי להציג רשימה של פריטים, משתמשים בדרך כלל בפונקציה map() של מערכים. חובה לתת לכל פריט key ייחודי.

📝 טפסים (Forms)

ב-React נהוג להשתמש ב-Controlled Components, שבהם ה-State של React הוא "מקור האמת" היחיד לערכי הטופס.

🎣 Hooks נוספים

מלבד useState ו-useEffect, יש עוד Hooks שימושיים.

useRef

מאפשר לגשת לאלמנט DOM ישירות או לשמור ערך שלא גורם לרינדור מחדש בשינוי.

🌍 Routing (React Router)

ביישומי דף יחיד (SPA), אנו רוצים לעבור בין "דפים" ללא רענון הדפדפן. ספריית react-router-dom מאפשרת זאת.

רכיבים עיקריים:

🌳 Context API

Context מאפשר להעביר מידע עמוק בעץ הקומפוננטות מבלי להעביר Props ידנית בכל רמה ("Props Drilling").

⚙️ useReducer

useReducer הוא אלטרנטיבה ל-useState לניהול State מורכב יותר, בדומה ל-Redux.

🚀 Performance Hooks

useMemo ו-useCallback משמשים לאופטימיזציה ומניעת חישובים או רינדורים מיותרים.

useMemo

שומר תוצאה של חישוב יקר ("Memoization").

🎣 Custom Hooks

אפשר ליצור Hooks משלנו כדי לעשות שימוש חוזר בלוגיקה (State ו-Effects) בין קומפוננטות.