PracticU

הצגת מידע באתר בצורת כרטיסיות

בלי כתוביותעם כתוביות
PracticU › קורס ריאקט - React › הצגת מידע באתר בצורת כרטיסיות
מילון מושגים:
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
צד שרת - החלק של היישום שרץ בשרת ואחראי על הלוגיקה, מסדי הנתונים והעיבוד שמאחורי הקלעים.
URL - הכתובת שמזהה משאב באינטרנט, למשל דף אתר, וכוללת פרוטוקול, שם מארח ונתיב.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.

הצגת מידע באתר בצורת כרטיסיות
רשימת שמות בלבד אינה נוחה לקריאה ואינה מציגה מחיר, מלאי או תמונה. בהרצאה עוברים להצגת כל מוצר ככרטיסייה (card) באמצעות קומפוננטה נפרדת שמציגה מוצר אחד.
למה לא טבלה
אפשר להציג מערך בטבלה: thead עם כותרות, ו-tbody שבו שורת tr משוכפלת עם map, כל אחת עם td של שם, מחיר ומלאי. זה עובד, אבל כאן בוחרים בכרטיסיות, טכניקה נפוצה שבה כל מוצר הוא יחידה נפרדת.
בניית הכרטיסייה
1. קומפוננטה חדשה: יוצרים functional component בשם ProductCard בתוך product area.
2. props: מקבלים מבחוץ מוצר אחד מסוג ProductModel. ה-parent הוא ProductList, והוא מעביר כל מוצר.
3. שני אזורים: שני div, באחד הפרטים (שם, מחיר בדולרים, מלאי) ובשני התמונה. הפרטים נקראים מתוך props.product.
4. שימוש ב-ProductList: במקום הטבלה, ב-map יוצרים תגית של ProductCard עם product={p}. חייבים גם key ייחודי, והוא p.id, כדי שהרינדור יהיה יעיל.
5. תמונה: תגית img שה-src שלה מגיע מה-Backend. בנתונים יש רק imageName (מספר), והתמונה זמינה בכתובת מהצורה products/images/1.jpg.
6. כתובת התמונות בקונפיג: מוסיפים ל-urls שדה productImages, שהוא ה-base URL משורשר עם products/images/ (אותו שדה מוגדר גם ב-Development וגם ב-Production). בכרטיסייה משרשרים אליו את props.product.imageName.
שימו לב
- ללא עיצוב יש גלישה והרכיבים צפופים. את העיצוב עושים בסרטון הבא.
- הכתובת של התמונות ידועה למרצה מההיכרות עם ה-Backend, ואפשר לבדוק אותה בדפדפן על ידי גלישה ל-1.jpg ול-2.jpg.
המעבר מטבלה לכרטיסיות נותן הצגה נוחה יותר של כל המידע, כולל התמונות.
השיעור הבא בקורס: עיצוב כרטיסיות

פרקי ההרצאה: הצגת מידע באתר בצורת כרטיסיות

  1. 00:00

    שיפור הצגת המוצרים

  2. 00:40

    הצגת המידע בטבלה

  3. 02:17

    מעבר לכרטיסיות Cards

  4. 03:18

    קומפוננטת Product Card עם props

  5. 04:38

    תכנון הכרטיסייה בשני חלקים

  6. 05:38

    הצגת Name, Price ו-Stock

  7. 06:51

    שימוש בקומפוננטה עם map

תמלול ההרצאה: הצגת מידע באתר בצורת כרטיסיות

הטקסט המלא של הדקות הראשונות בהרצאה «הצגת מידע באתר בצורת כרטיסיות» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אז אחרי שהצגנו לפחות את השמות של המוצרים והוצאנו את ה-URLים לקובץ קונפיגורציה אחד כללי שתומך גם ב-Development וגם ב-Production, אנחנו רוצים עכשיו לחזור לייצור הזה.

  2. 00:19

    הייצור הזה הוא לא הכי נוח לקריאה ולא הכי אסתטי וגם רק שמות המוצרים נמצאים פה, מה עם כל שאר הנתונים או אפילו מה עם התמונות של המוצרים. אז איך נכון לבצע את זה?

  3. 00:31

    בעצם יש כל מיני שיטות להציג מערך של פריטים, אנחנו יכולים להציג את כל הנתונים בטבלה ואז במקום span אנחנו פשוט יוצרים פה איזושהי טבלה והשורות שורות שורות של הטבלה משוכפלות בצורה כזאת.

  4. 00:49

    נניח אם הייתי יוצר פה איזושהי טייבל אז לטבלה אולי יש THead וב-THead יש TH, טייבל הדר, ואנחנו רוצים להציג את השם של המוצר ואולי יש לנו גם את המחיר ואולי יש לנו גם את הכמות במלאי ואז היינו יכולים ללכת וליצור T-Body וזה הגוף של הטבלה ופה אנחנו רוצים להתחיל לשכפל

  5. 01:18

    את השורות אז היינו לוקחים את הקוד הזה ששכפל לנו ספנים ופשוט אומרים לו תשמע במקום ספן תשכפל לי בואו נשכפל פה tr ואז בתוך הtr אולי היה כדאי לרדת פה שורה היינו יכולים להגדיר את הtds של הtr ופה בעצם היה p.name נשכפל לp.price

  6. 01:54

    נשכפל לp.stock את זה נוריד והנה יש לנו טבלה שזה הכותרת שלה שורות משוכפלות, רציתי לעשות ככה, בואו רגע נבדוק איך זה נראה והנה יש לנו טבלה כמובן css יכולה לעצב אותה שהיא לא תגלוש לי אבל אנחנו רואים שהמידע מוצג בצורה טבלאית אולי פה היינו שמים את התמונה

  7. 02:17

    אבל אני לא רוצה להתעסק כרגע עם טבלה אני רוצה לעשות משהו אחר אני רוצה להציג כל מוצר כיחידה נפרדת קוראים לזה קארד, קארדים, כרטיסיות, זאת גם טכניקה מאוד נפוצה ובואו נראה איך מבצעים את זה בעירייה.

  8. 02:37

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

  9. 02:57

    אז אני אוסיף כאן עם הפלוס, אני אוסיף קומפוננטה חדשה create נגדיר אותה כ-functional component נשים אותה בתוך product area ונקרא לה product card כלומר כרטיס אחד ויחיד ואנחנו רוצים שיהיה לה props כי אנחנו רוצים לקבל את המוצר מחוץ לקומפוננטה אלינו כלומר ה-parent שלנו זה ה-product list הוא ה-parent הוא הולך להביא לנו את המוצרים ומוצר שהוא מביא לי נכנס לפרופס

  10. 03:36

    ואני פשוט מציג אותו איך שאני יודע להציג אני קארד כרטיס או כרטיסייה מציג אותו איך שאני יודע בואו נגדיר את זה ואפשר לסגור רגע הנה פרודקט קארד אחד ויחיד הנה הפרופס שלו בפרופס אנחנו רוצים לקבל מבחוץ מוצר פרודקט אחד ויחיד הסוג שלו כמובן הוא פרודקט מודל הנה הפרופס ואנחנו רוצים להציג אותו כאיזשהו בוקס, ובואו נחשוב רגע מה אני

  11. 04:13

    רוצה לראות בכל כרטיסייה, אולי נצייר איזה משהו כזה, בואו נלך לפיינט, וניקח רגע איזושהי סכמה, אם אני מציג כרטיסייה אחת, ככה אני בטח אראה את המוצר, נראה לי הגיוני, אז בוא נגיד שיהיה לי שני חלקים לכרטיסייה הזאת, חלק אחד יהיה כאן, והוא יציג לנו את הפרטים של המוצר וחלק השני יהיה כאן והוא יציג לנו את התמונה של המוצר

  12. 04:46

    אוקיי אז בוא נניח שזה ה-image ובוא נניח שפה יהיה השם של המוצר נניח ניקח ניקח את המוצר הראשון צ'אי ויהיה לו פרייס כלשהו נניח 19 דולר ויהיה לו סטוק כמה יש לי במלאי וככה אני אראה כרטיסייה כרטיסייה זאת התוכנית, זה מה שאני רוצה לראות.

  13. 05:16

    אורייט? אז יש לנו פה שני אזורים. נניח דיו ראשונה, דיו שנייה, בואו נחזור ונבנה לעצמנו שני אזורים. הנה דיו ראשונה, הנה דיו שנייה.

  14. 05:31

    בתוך הדיו הראשונה אנחנו רוצים להציג את מה שראינו פה. יש לנו את ה-Name, יש לנו Price ויש לנו Stock. אז אנחנו יכולים לגשת ל-Props שקיבלנו, שמה יושב לו המוצר שהביאו לנו, והנה ה-Name שלו, הנה ה-Price שלו, הנה ה-Stock שלו.

  15. 05:58

    בואו נרד פה איזה שורה אולי, וגם פה, ואולי נגדיר שפה יושבת המילה Price, וזה דולר, ובואו נגדיר שפה יושבת המילה Stock, וכל אלה נמצאים בדיב הראשונה.

  16. 06:26

    לפני שנתעסק עם התמונות בואו נראה איך הדבר הזה נראה. בשביל לראות איך זה נראה אנחנו צריכים להשתמש בקומפוננטה הזאת.

  17. 06:35

    אנחנו משתמשים בקומפוננטה מפה, מהפרודקט ליסט, אנחנו לא מציגים אותה כטבלה, בואו נעשה את זה פה אולי ופשוט נייצר לעצמנו בדיוק את אותו הדבר כמו מקודם, היה לנו זה dist.state.products ויש לנו פה map עבור כל מוצר, מה אתה אמור ליצור לי?

  18. 07:03

    אתה אמור ליצור תגית product hard מסוג הקומפוננטה שבנינו בצורה כזאת. עכשיו קודם כל הוא צועק עליי הוא אומר לי תשמע אתה בעצם אמרת לי שיש לך props ולא הבאת לי אותו.

  19. 07:23

    props שלנו נקרא product תן לי את המוצר איזה מוצר אתה רוצה שאני אעביר לתוך הקומפוננטה המוצר שלנו זה אותו אלמנט p שאנחנו משכפלים

לקורס המלא: קורס ריאקט אונליין

ההרצאה הקודמת: יצירת מחלקה עם כל ההגדרות - Config Class - חלק 2

ההרצאה הבאה: עיצוב כרטיסיות

הרצאות קשורות מקורסים אחרים

  • הצגת תמונות באתר אינטרנט ב-NodeJS
  • אבטחת מידע
  • הצגת popover באייפון
  • הצגת תמונות באפליקציה

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס NodeJS