PracticU

העברת מידע בין קומפוננטות בעזרת prop ב-component class בריאקט

בלי כתוביותעם כתוביות
PracticU › קורס ריאקט - React › העברת מידע בין קומפוננטות בעזרת prop ב-component class בריאקט
מילון מושגים:
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
ממשק - נקודת מגע בין רכיבים: ממשק משתמש שבו אדם מפעיל תוכנה, או ממשק תכנותי שמגדיר אילו פעולות רכיב אחד חושף לאחר.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
אופרטור - סימן בקוד שמבצע פעולה על ערכים, כמו חיבור, השוואה או פעולה לוגית.

העברת מידע בין קומפוננטות בעזרת prop ב-component class בריאקט
ב-class component ה-props מגיעים אחרת מאשר ב-functional component. ההרצאה ממירה את Sales למחלקה ומראה איך מקבלים נתונים מהאב, מגדירים ערכי ברירת מחדל ועובדים עם קונסטרקטור.
השלבים העיקריים
1. ההמרה: מגדירים מחלקה Sales שיורשת מ-Component, עם render שמחזירה את אותו JSX. ה-interface של ה-props נשאר ללא שינוי, עם category אופציונלי ו-percent.
2. Generics: ב-functional component ה-props היו בסוגריים של הפונקציה, אבל כאן לא בסוגריים של render. כדי לדעת איזה טיפוס מגיע, כותבים בסוגריים משולשים אחרי Component את טיפוס ה-props, כלומר הקומפוננט הופך לגרסה גנרית.
3. גישה ל-props: בתוך המחלקה ניגשים אליהם עם this.props, ושם נמצאים category, percent ו-children, שיוסבר בהמשך.
4. ערכי ברירת מחדל: בקלאס מגדירים public static get defaultProps() שמחזירה אובייקט מטיפוס ה-props, עם קטגוריה candies ואחוז 10. הוא static, כלומר שייך למחלקה ולא לאובייקט שלה. בגלל שהכתיב מחייב, צריך למלא גם את percent. לפעמים נדרש רענון הדף.
5. קונסטרקטור: אפשר לא לכתוב אותו. אם כותבים, הוא מקבל את ה-props מטיפוס SalesProps וקורא ל-super(props) כדי להעביר אותם למחלקה שממנה יורשים. בלי זה מתקבלת שגיאה, כי הקונסטרקטור שלנו דורס את זה של Component.
6. יצירה אוטומטית: בכלי ה-snippet הקיצור cc יוצר class component, וה---props מוסיף אליו interface והגנרי, בלי קונסטרקטור.
בדיקה
עם שני הערכים מוצג "20% off on all beverages". ללא הקטגוריה, ערך ברירת המחדל נכנס. עם undefined אפשר גם לבצע אופרטור טרינארי, אבל המרצה בוחר בערכי ברירת מחדל.
אחרי ההרצאה אפשר לקבל props ב-class component, כולל טיפוסים, ערכי ברירת מחדל וקונסטרקטור.
השיעור הבא בקורס: אירועים בריאקט - Events

פרקי ההרצאה: העברת מידע בין קומפוננטות בעזרת prop ב-component class בריאקט

  1. 00:00

    המרת Sales ל-Class Component

  2. 01:28

    ההבדל בקבלת props בקלאס

  3. 02:04

    שימוש ב-Generics עבור props

  4. 02:44

    גישה ל-props עם this

  5. 03:41

    בדיקת התצוגה וערך undefined

  6. 04:41

    ערכי ברירת מחדל ל-props

תמלול ההרצאה: העברת מידע בין קומפוננטות בעזרת prop ב-component class בריאקט

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

  1. 00:02

    אנחנו ראינו שאנחנו יכולים לבנות קומפוננט על ידי functional component ועל ידי class component. אנחנו רוצים עכשיו לראות איך בעצם אפשר להתעסק עם ה-props או לקבל props אם אנחנו בונים class component במקום functional component.

  2. 00:23

    אז בואו נראה, קודם כל כשאנחנו רצינו להעביר את הדבר הזה ל-class component, מה היה לנו פה? בואו רגע נשים את כל זה בהערה, ומה שהיה לנו פה זה Class, אני אקרא לה באותו השם, Sales Extends Component.

  3. 00:44

    זה בעצם מה שהיה, אני רק אעביר את זה לפה. ובתוך עשינו Public Render שמחזירה JSX Element ויש לנו פה את כל ה-Return שהיה מקודם בפונקציה, היה לנו כאן, נוריד רק את ההערה, ואנחנו לא כל כך צריכים פה את כל אלה אז אני רגע יוריד אותם וכמובן אין לי כרגע props אז הוא צועק עליי ואנחנו רוצים לראות

  4. 01:24

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

  5. 01:47

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

  6. 02:20

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

  7. 02:53

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

  8. 03:06

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

  9. 03:23

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

  10. 03:41

    בואו רגע נסתכל על זה. 20% off on all beverages. עובד פרפקט. אם אני אומר לו, תשמע, אני רוצה להביא רק פרסנט, אז אני רואה שיש לי פה איזה בעיה, מפני שאין לי את הפרסנט, הוא אונדיפיינד, לא הייתי חייב להביא אותו, לא, סליחה, את הקטגורי.

  11. 04:02

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

  12. 04:27

    ולהציג פסקה אחרת במידה ואין קטגורי זה בסדר זה ממש אותו הדבר. אבל אני רוצה לראות איך אני מיישם פה default values וזה לא השיטה הזאת. בקלאס מה שאנחנו עושים בקלאס קומפורננט אנחנו יוצרים public static גט דיפולט פרופס בצורה כזאת והוא מחזיר לנו sales props ואנחנו מחזירים את האובייקט שאנחנו רוצים. האובייקט שלנו כרגע מכיל רק

  13. 05:06

    קטגורי וניתן לו

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

ההרצאה הקודמת: העברת מידע בין קומפוננט אב לתתי-קומפוננטות שלו - ילדים ב-REACT

ההרצאה הבאה: אירועים בריאקט - Events

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

  • העברת מידע מ-Controller ל-View
  • The R Class
  • Component Testing
  • Component Communitaction

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

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