תפסיקו לבנות עוד טודו ליסט - בנו דשבורד נתונים אמיתי ב-React¶
כל מי שלומד React בונה טודו ליסט. זה תרגיל טוב בשביל להבין state בסיסי, אבל בואו נודה בזה - אף מעסיק לא מתרגש מטודו ליסט מספר 4000. אם אתם רוצים פרויקט שבאמת מדגים יכולת אמיתית, בנו דשבורד נתונים עם גרפים. זה הפרויקט שמראה שאתם יודעים לנהל state מורכב, להתמודד עם נתונים אמיתיים, ולבנות ממשק שנראה כמו מוצר, לא כמו תרגיל.
למה דווקא דשבורד¶
דשבורד מכריח אתכם להתמודד עם כל מה שפיתוח פרונט אמיתי דורש - שליפת נתונים, טרנספורמציה שלהם לפורמט שהגרף מבין, ניהול מצבי טעינה ושגיאה, ועיצוב שמתקשר מידע בבירור. זה לא פרויקט "יפה", זה פרויקט שממש דומה למה שתעשו ביום עבודה רגיל אם תתקבלו למשרת פרונטאנד.
מתכננים את המבנה לפני שכותבים שורת קוד¶
הפיתוי הראשון הוא לפתוח VS Code ולהתחיל לכתוב. אל תעשו את זה. קודם תחליטו מה הדשבורד מציג - נניח שאתם בונים דשבורד למכירות של חנות פיקטיבית. יהיו לכם כמה סוגי בלוקים: כרטיסי סטטיסטיקה למספרים מרכזיים (סה"כ מכירות, מספר הזמנות, ממוצע עסקה), גרף מגמה לאורך זמן, וגרף התפלגות לפי קטגוריה. תכננו את הפריסה - grid עם אזורים ברורים - לפני שאתם כותבים component אחד. תכנון על נייר חוסך שעות של ריפקטור אחר כך.
בוחרים ספריית גרפים¶
שתי הספריות הכי נפוצות הן Recharts ו-Chart.js. Recharts בנויה במיוחד עבור React - הגרפים שלה הם קומפוננטות React רגילות, מה שהופך את זה לטבעי מאוד לכתוב. Chart.js חזקה יותר ומותאמת יותר אישית, אבל דורשת עטיפה כדי לעבוד נוח עם React. למתחילים אני ממליץ על Recharts - העקומת למידה קצרה בהרבה, וזה מספיק גמיש לרוב הצרכים.
<LineChart data={salesData}>
<XAxis dataKey="month" />
<YAxis />
<Line type="monotone" dataKey="revenue" stroke="#4f46e5" />
</LineChart>
מביאים נתונים ומעצבים אותם לגרף¶
זה החלק שאף אחד לא מדבר עליו מספיק - הנתונים שמגיעים מ-API כמעט אף פעם לא מגיעים בפורמט שהגרף רוצה. תקבלו מערך של הזמנות בודדות, ותצטרכו לקבץ אותן לפי חודש, לסכום סכומים, ולבנות מערך חדש עם המבנה המדויק שהגרף מצפה לו. זו בדיוק המיומנות שמפרידה בין מי שיודע להטמיע גרף לפי מדריך לבין מי שיודע לעבוד עם נתונים אמיתיים ומבולגנים.
איזה סוג גרף מתאים לאיזה נתון¶
זו לא רק שאלה טכנית, זו שאלה של תקשורת. מגמה לאורך זמן - גרף קווי. השוואה בין קטגוריות - גרף עמודות. התפלגות של שלם לחלקים - גרף עוגה, אבל בזהירות, כי עוגה עם יותר מארבעה-חמישה פלחים הופכת לבלתי קריאה. אם אתם לא בטוחים, גרף עמודות כמעט תמיד עדיף על עוגה. שווה גם לקרוא על העקרונות האלה בקורס צד לקוח שלנו, שם יש הסבר מסודר על React ועל איך לחשוב על ממשק משתמש שמעביר מידע בצורה נכונה.
component-ים לשימוש חוזר¶
כרטיס הסטטיסטיקה שמציג "סה"כ מכירות" צריך להיות component אחד גנרי שמקבל props - כותרת, ערך, ואולי אייקון או צבע - ולא ארבעה component-ים כמעט זהים. זו בדיוק ההזדמנות ללמוד עקרון מרכזי בפיתוח - כשאתם מעתיקים ומדביקים קוד בפעם השנייה, זה הרגע לעצור ולהפוך אותו ל-component לשימוש חוזר.
המלכודות הנפוצות¶
הטעות הכי שכיחה היא לשכוח מצב טעינה ומצב שגיאה. אם ה-API לא ענה עדיין, מה המשתמש רואה? מסך ריק זה לא תשובה טובה. טעות שנייה היא לבנות גרפים שלא מתכווצים למסך קטן - תבדקו את הדשבורד גם ברוחב מובייל. וטעות שלישית היא לבצע את חישובי הטרנספורמציה מחדש בכל רינדור במקום לזכור אותם עם useMemo, מה שהופך דשבורד עם הרבה נתונים לאיטי.
מה מקבלים בסוף¶
בסוף הפרויקט הזה יהיה לכם משהו שאפשר להראות בראיון עבודה ולהסביר בביטחון - למה בחרתם בגרף הזה ולא באחר, איך טיפלתם בנתונים, ואיך בניתם component-ים גנריים. זה בדיוק סוג הפרויקט שמעביר את הרושם "זה מישהו שיודע לעבוד", לא רק "זה מישהו שהעתיק מדריך".
אם אתם רוצים ללמוד את היסודות של React בצורה מסודרת לפני שאתם קופצים לפרויקט כזה, קורס צד לקוח באתר בחינם, בעברית, ומלווה אתכם צעד אחר צעד.