רקע והיסטוריה

מהי React?

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

למה נוצרה React?

הצורך ב-React נולד מתוך כאב אמיתי. ככל שהממשקים בפייסבוק גדלו והפכו מורכבים יותר, ניהול ה-DOM באופן ידני הפך למסורבל ורגיש לשגיאות:

// בעיה: עדכון ידני של ה-DOM
document.getElementById('counter').innerHTML = newValue;
document.getElementById('total').innerHTML = calculateTotal();
document.getElementById('status').className = getStatusClass();
// ... וכן הלאה - קוד מסורבל ונפרד!
// React: הכל מתעדכן אוטומטית!
function Counter() {
    const [count, setCount] = useState(0);

    return (
        <div>
            <span>{count}</span>
            <button onClick={() => setCount(count + 1)}>+</button>
        </div>
    );
}

ציר זמן

שנה אירוע
2011 פיתוח פנימי ב-Facebook
2013 שחרור React כקוד פתוח
2015 React Native לאפליקציות מובייל
2016 React 15 - שיפורי ביצועים
2019 React Hooks (גרסה 16.8)
2022 React 18 - Concurrent Features
2024 React 19 - Actions, Server Components ו-Hooks חדשים
2025 React Compiler 1.0 ו-React 19.2; Create React App הוצא משימוש

יתרונות מרכזיים

1. Virtual DOM

React מנהלת עותק וירטואלי של ה-DOM שנקרא Virtual DOM. במקום לגעת בעמוד עצמו בכל שינוי, היא מעדכנת תחילה את העותק הזה:

שינוי ב-State ──► Virtual DOM מתעדכן ──► השוואה ──► רק השינויים מעודכנים ב-DOM האמיתי

הגישה הזו חוסכת עדכונים מיותרים ומהירה בהרבה מעדכון ישיר של ה-DOM.

2. קומפוננטות (Components)

כל חלק בממשק הוא קומפוננטה עצמאית, שאחראית על מקטע מוגדר של התצוגה:

function App() {
    return (
        <div>
            <Header />
            <Sidebar />
            <MainContent />
            <Footer />
        </div>
    );
}

3. One-Way Data Flow

הנתונים ב-React זורמים בכיוון אחד בלבד - מקומפוננטת ההורה אל קומפוננטות הילד. זרימה חד-כיוונית זו מקלה על מעקב אחר מקור הנתונים ועל איתור תקלות:

App (state) ──► Header (props) ──► Logo (props)

4. JSX

תחביר שמאפשר לשלב קוד JavaScript ותגי HTML באותו הקובץ:

const element = <h1>שלום עולם!</h1>;
const dynamic = <p>היום הוא {new Date().toLocaleDateString('he-IL')}</p>;

React מול ספריות אחרות

תכונה React Vue Angular
סוג ספרייה Framework Framework
עקומת למידה בינונית קלה תלולה
גודל (gzip) ~40KB ~33KB ~143KB
שפה JavaScript/JSX JavaScript/Vue TypeScript
גיבוי Meta (Facebook) קהילה Google
שוק עבודה 🥇 הכי נפוץ 🥈 🥉

מי משתמש ב-React?

כמעט כל חברת טכנולוגיה גדולה בונה חלק מהמוצרים שלה ב-React. הנה כמה דוגמאות מוכרות:

  • Facebook / Instagram - היוצרים!
  • Netflix - ממשק המשתמש
  • Airbnb - אתר ואפליקציה
  • WhatsApp Web - גרסת הווב
  • Dropbox - ממשק המשתמש
  • Discord - אפליקציית הצ'אט

סיכום

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

היא מתאימה במיוחד עבור:

  • אפליקציות עמוד יחיד (SPA - Single Page Application)
  • ממשקים אינטראקטיביים שמגיבים בזמן אמת
  • פרויקטים גדולים שמפותחים בעבודת צוות

הבא: התקנה והגדרות →

בדקו את עצמכם

נסו לענות לבד לפני שאתם פותחים את התשובה.

  1. מה הרעיון המרכזי של React?

    1. לבנות ממשק מקומפוננטות, ולתאר איך הוא נראה לפי ה-state
    2. לכתוב HTML ידנית בכל שינוי
    3. לעצב דפים
    4. להחליף את JavaScript
    הצגת התשובה

    תשובה א. React היא דקלרטיבית: מתארים את התוצאה, ו-React מעדכנת את ה-DOM.

  2. מה תפקיד ה-Virtual DOM?

    1. להריץ CSS
    2. להסתיר את הדף
    3. לשמור נתונים בשרת
    4. להשוות את המצב הקודם לחדש ולעדכן ב-DOM האמיתי רק את מה שהשתנה
    הצגת התשובה

    תשובה ד. עדכון ממוקד חוסך עבודה יקרה על ה-DOM.