⚛️ מבוא ל-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 ישירות או לשמור ערך שלא גורם לרינדור מחדש בשינוי.