ריאקט מול ג'אווהסקריפט רגיל - מתי באמת צריך את זה¶
כל מי שמתחיל ללמוד פרונטאנד נתקל באותה שאלה אחרי שבועיים-שלושה: "אז מתי אני כבר עובר לריאקט?". יש הרגשה שג'אווהסקריפט רגיל זה משהו שעושים "בדרך" לריאקט, ושכל עוד לא בניתם אפליקציה עם קומפוננטות אתם בעצם עוד לא באמת מתכנתים. זה שטויות, ואני רוצה להסביר למה.
מה זה בכלל ריאקט¶
ריאקט היא ספרייה של פייסבוק (מטא) שנועדה לפתור בעיה מאוד ספציפית - לנהל ממשק משתמש שמשתנה כל הזמן בלי לאבד את השפיות. ברגע שהאתר שלכם מורכב ממאות אלמנטים שצריכים להתעדכן על סמך נתונים, ג'אווהסקריפט רגיל הופך למסובך לתחזוקה. ריאקט נותן לכם דרך לחשוב על הממשק כעל קומפוננטות - חתיכות עצמאיות של קוד וממשק שמתעדכנות אוטומטית כשהנתונים שלהן משתנים.
זה לא קסם וזה לא שפה חדשה. זה עדיין ג'אווהסקריפט, רק עם שכבה שמסדרת לכם את הבלגן.
אז למה לא להתחיל ישר עם ריאקט?¶
כי אתם תלמדו לסמוך על כלי שאתם לא מבינים. זו הבעיה הכי גדולה שאני רואה אצל אנשים שקופצים ישר לריאקט. הם יודעים לכתוב useState אבל לא יודעים מה קורה כשלוחצים כפתור ברמת הדפדפן. הם יודעים לבנות קומפוננטה אבל לא יודעים מה זה DOM, למה יש לו "עץ", ואיך אירוע בכלל מגיע מהעכבר של המשתמש לפונקציה שלכם.
זה כמו ללמוד לנהוג רק על אוטומט בלי להבין מה קורה מתחת למכסה המנוע. זה עובד, עד שמשהו משתבש, ואז אתם תקועים בלי שום כלים להבין למה.
מתי ג'אווהסקריפט רגיל מספיק לגמרי¶
הרבה יותר פעמים ממה שחושבים. אם אתם בונים דף נחיתה, טופס פשוט, אנימציה, תפריט נפתח, או אתר תדמית - ג'אווהסקריפט רגיל (או Vanilla JS כמו שקוראים לזה) יעשה את העבודה מהר יותר, עם פחות קוד, ובלי להוריד ספריות שלמות בשביל דבר שממש לא צריך אותן.
בפועל, המון אתרים בעולם האמיתי בכלל לא צריכים ריאקט. הם צריכים HTML נקי, CSS מסודר, וקצת JS חכם. להביא ריאקט לפרויקט כזה זה כמו להביא משאית כדי להעביר תיק גב - זה יעבוד, אבל זה בזבוז אדיר.
מתי ריאקט באמת שווה את זה¶
ריאקט מתחיל להצדיק את עצמו כשיש לכם:
- ממשק דינמי ומורכב - דשבורד, אפליקציית ניהול, משהו עם הרבה מצבים (state) שמשתנים כל הזמן.
- הרבה קומפוננטות שחוזרות על עצמן - כרטיסי מוצר, רשימות, טפסים מרובי שלבים.
- צוות שעובד יחד - ריאקט נותן מבנה ברור שעוזר לאנשים לעבוד על אותו קוד בלי לדרוך אחד על השני.
- אתם רוצים עבודה בהייטק - בואו נדבר בכנות, רוב המשרות של פרונטאנד היום דורשות ריאקט. זו המציאות של השוק.
הסדר הנכון ללמידה¶
הנה מה שאני ממליץ בפועל, ומה שהקורס שלנו בנוי סביבו: קודם HTML ו-CSS עד שהם נוחים לכם, אחר כך ג'אווהסקריפט וDOM עד שאתם מבינים איך דף אינטרנט "חי" ומגיב למשתמש, ורק אז ריאקט. לא כי ריאקט קשה מדי, אלא כי בלי הבסיס הזה אתם לומדים בעל פה בלי להבין, ואת זה מרגישים אחר כך בכל ראיון עבודה ובכל פעם שמשהו נשבר בפרודקשן.
מי שבונה את הבסיס הזה נכון, לומד ריאקט תוך שבועיים-שלושה בקלות יחסית, כי רוב הקונספטים כבר מוכרים לו. מי שמדלג ישר, נתקע כל הזמן בדברים ש"לא אמורים" להיות קשים.
בקורס צד לקוח בנינו בדיוק את המסלול הזה - מ-HTML הכי בסיסי ועד ריאקט מתקדם וניהול סטייט, בסדר שבאמת עובד ולא מדלג על שום דבר.
לסיכום¶
ריאקט הוא כלי מדהים לבעיה ספציפית, לא תחליף ללימוד ג'אווהסקריפט. תלמדו את היסודות טוב, תבינו למה ריאקט קיים ואיזו בעיה הוא פותר, ורק אז תקפצו פנימה. כשתגיעו לשם, זה יהיה הרבה יותר קל ממה שחשבתם.
אם אתם מתלבטים איפה בדיוק אתם נמצאים במסלול, בואו לשאול בדיסקורד, יש שם אנשים שעברו בדיוק את זה.