
thead עם כותרות, ו-tbody שבו שורת tr משוכפלת עם map, כל אחת עם td של שם, מחיר ומלאי. זה עובד, אבל כאן בוחרים בכרטיסיות, טכניקה נפוצה שבה כל מוצר הוא יחידה נפרדת.ProductCard בתוך product area.ProductModel. ה-parent הוא ProductList, והוא מעביר כל מוצר.div, באחד הפרטים (שם, מחיר בדולרים, מלאי) ובשני התמונה. הפרטים נקראים מתוך props.product.map יוצרים תגית של ProductCard עם product={p}. חייבים גם key ייחודי, והוא p.id, כדי שהרינדור יהיה יעיל.img שה-src שלה מגיע מה-Backend. בנתונים יש רק imageName (מספר), והתמונה זמינה בכתובת מהצורה products/images/1.jpg.urls שדה productImages, שהוא ה-base URL משורשר עם products/images/ (אותו שדה מוגדר גם ב-Development וגם ב-Production). בכרטיסייה משרשרים אליו את props.product.imageName.1.jpg ול-2.jpg.הטקסט המלא של הדקות הראשונות בהרצאה «הצגת מידע באתר בצורת כרטיסיות» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז אחרי שהצגנו לפחות את השמות של המוצרים והוצאנו את ה-URLים לקובץ קונפיגורציה אחד כללי שתומך גם ב-Development וגם ב-Production, אנחנו רוצים עכשיו לחזור לייצור הזה.
הייצור הזה הוא לא הכי נוח לקריאה ולא הכי אסתטי וגם רק שמות המוצרים נמצאים פה, מה עם כל שאר הנתונים או אפילו מה עם התמונות של המוצרים. אז איך נכון לבצע את זה?
בעצם יש כל מיני שיטות להציג מערך של פריטים, אנחנו יכולים להציג את כל הנתונים בטבלה ואז במקום span אנחנו פשוט יוצרים פה איזושהי טבלה והשורות שורות שורות של הטבלה משוכפלות בצורה כזאת.
נניח אם הייתי יוצר פה איזושהי טייבל אז לטבלה אולי יש THead וב-THead יש TH, טייבל הדר, ואנחנו רוצים להציג את השם של המוצר ואולי יש לנו גם את המחיר ואולי יש לנו גם את הכמות במלאי ואז היינו יכולים ללכת וליצור T-Body וזה הגוף של הטבלה ופה אנחנו רוצים להתחיל לשכפל
את השורות אז היינו לוקחים את הקוד הזה ששכפל לנו ספנים ופשוט אומרים לו תשמע במקום ספן תשכפל לי בואו נשכפל פה tr ואז בתוך הtr אולי היה כדאי לרדת פה שורה היינו יכולים להגדיר את הtds של הtr ופה בעצם היה p.name נשכפל לp.price
נשכפל לp.stock את זה נוריד והנה יש לנו טבלה שזה הכותרת שלה שורות משוכפלות, רציתי לעשות ככה, בואו רגע נבדוק איך זה נראה והנה יש לנו טבלה כמובן css יכולה לעצב אותה שהיא לא תגלוש לי אבל אנחנו רואים שהמידע מוצג בצורה טבלאית אולי פה היינו שמים את התמונה
אבל אני לא רוצה להתעסק כרגע עם טבלה אני רוצה לעשות משהו אחר אני רוצה להציג כל מוצר כיחידה נפרדת קוראים לזה קארד, קארדים, כרטיסיות, זאת גם טכניקה מאוד נפוצה ובואו נראה איך מבצעים את זה בעירייה.
אז תשכחו מהטבלה הזאת, ביי ביי. בשביל להציג את המידע של כל מוצר בקארד משלו, מה שנכון לבצע זה לבנות קומפוננטה שאחראית על הקארדים, שיודעת להציג קארד אחד ויחיד.
אז אני אוסיף כאן עם הפלוס, אני אוסיף קומפוננטה חדשה create נגדיר אותה כ-functional component נשים אותה בתוך product area ונקרא לה product card כלומר כרטיס אחד ויחיד ואנחנו רוצים שיהיה לה props כי אנחנו רוצים לקבל את המוצר מחוץ לקומפוננטה אלינו כלומר ה-parent שלנו זה ה-product list הוא ה-parent הוא הולך להביא לנו את המוצרים ומוצר שהוא מביא לי נכנס לפרופס
ואני פשוט מציג אותו איך שאני יודע להציג אני קארד כרטיס או כרטיסייה מציג אותו איך שאני יודע בואו נגדיר את זה ואפשר לסגור רגע הנה פרודקט קארד אחד ויחיד הנה הפרופס שלו בפרופס אנחנו רוצים לקבל מבחוץ מוצר פרודקט אחד ויחיד הסוג שלו כמובן הוא פרודקט מודל הנה הפרופס ואנחנו רוצים להציג אותו כאיזשהו בוקס, ובואו נחשוב רגע מה אני
רוצה לראות בכל כרטיסייה, אולי נצייר איזה משהו כזה, בואו נלך לפיינט, וניקח רגע איזושהי סכמה, אם אני מציג כרטיסייה אחת, ככה אני בטח אראה את המוצר, נראה לי הגיוני, אז בוא נגיד שיהיה לי שני חלקים לכרטיסייה הזאת, חלק אחד יהיה כאן, והוא יציג לנו את הפרטים של המוצר וחלק השני יהיה כאן והוא יציג לנו את התמונה של המוצר
אוקיי אז בוא נניח שזה ה-image ובוא נניח שפה יהיה השם של המוצר נניח ניקח ניקח את המוצר הראשון צ'אי ויהיה לו פרייס כלשהו נניח 19 דולר ויהיה לו סטוק כמה יש לי במלאי וככה אני אראה כרטיסייה כרטיסייה זאת התוכנית, זה מה שאני רוצה לראות.
אורייט? אז יש לנו פה שני אזורים. נניח דיו ראשונה, דיו שנייה, בואו נחזור ונבנה לעצמנו שני אזורים. הנה דיו ראשונה, הנה דיו שנייה.
בתוך הדיו הראשונה אנחנו רוצים להציג את מה שראינו פה. יש לנו את ה-Name, יש לנו Price ויש לנו Stock. אז אנחנו יכולים לגשת ל-Props שקיבלנו, שמה יושב לו המוצר שהביאו לנו, והנה ה-Name שלו, הנה ה-Price שלו, הנה ה-Stock שלו.
בואו נרד פה איזה שורה אולי, וגם פה, ואולי נגדיר שפה יושבת המילה Price, וזה דולר, ובואו נגדיר שפה יושבת המילה Stock, וכל אלה נמצאים בדיב הראשונה.
לפני שנתעסק עם התמונות בואו נראה איך הדבר הזה נראה. בשביל לראות איך זה נראה אנחנו צריכים להשתמש בקומפוננטה הזאת.
אנחנו משתמשים בקומפוננטה מפה, מהפרודקט ליסט, אנחנו לא מציגים אותה כטבלה, בואו נעשה את זה פה אולי ופשוט נייצר לעצמנו בדיוק את אותו הדבר כמו מקודם, היה לנו זה dist.state.products ויש לנו פה map עבור כל מוצר, מה אתה אמור ליצור לי?
אתה אמור ליצור תגית product hard מסוג הקומפוננטה שבנינו בצורה כזאת. עכשיו קודם כל הוא צועק עליי הוא אומר לי תשמע אתה בעצם אמרת לי שיש לך props ולא הבאת לי אותו.
props שלנו נקרא product תן לי את המוצר איזה מוצר אתה רוצה שאני אעביר לתוך הקומפוננטה המוצר שלנו זה אותו אלמנט p שאנחנו משכפלים