PracticU

יצירת קומפוננטת ניתוב - ריאקט

בלי כתוביותעם כתוביות
PracticU › קורס ריאקט - React › יצירת קומפוננטת ניתוב - ריאקט
מילון מושגים:
לייאאוט - ארגון וסידור הרכיבים החזותיים על המסך או בדף, כמו מיקום כפתורים, טקסט ותמונות.
ראוט - הגדרה שמקשרת כתובת בקשה לקוד שמטפל בה באפליקציה. גם מסלול שדרכו עוברות חבילות ברשת.
React - ספריית JavaScript לבניית ממשקי משתמש מבוססי רכיבים, שפותחה על ידי פייסבוק.
DOM - ייצוג עץ של מבנה דף HTML בזיכרון, שמאפשר לקוד לקרוא ולשנות את תוכן הדף ומבנהו.
TypeScript - שפת תכנות המרחיבה את JavaScript בהוספת טיפוסים, ומתקמפלת ל-JavaScript רגיל.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
סטייט - המידע על מצבו הנוכחי של רכיב או אפליקציה בזמן נתון, שמשתנה ומשפיע על מה שמוצג.
CSS - שפת עיצוב שקובעת את המראה של דפי אינטרנט: צבעים, גופנים, מיקום וסידור הרכיבים.

יצירת קומפוננטת ניתוב - ריאקט
ההרצאה מחברת מנגנון ראוטינג לאפליקציית ריאקט קיימת, כך שאזור ה-Main של ה-Layout יציג קומפוננט אחד לפי הראוט שכתוב בדפדפן, במקום קומפוננט קבוע.
השלבים
1. התקנה: ראוטינג לא מגיע עם פרויקט ריאקט. מתקינים את react-router-dom, ובפרויקט TypeScript מתקינים גם את @types/react-router-dom.
2. BrowserRouter: עוטפים בתגית BrowserRouter את כל קומפוננטת ה-Layout, כולל התפריט ואזור התוכן, כי שניהם קשורים לראוטינג. זה תפקידה היחיד.
3. קומפוננטה לדוגמה: בשביל התפריט יוצרים קומפוננטת ProductList בתוך אזור product-area, כדי שיהיה מה להציג. היא נבנית כ-class component (cc) כי בהמשך יהיה בה state.
4. קומפוננטת Routing נפרדת: יוצרים קומפוננטה פונקציונלית בשם Routing בתוך אזור ה-Layout, בלי CSS ובלי props, שמכילה את ההגדרות. את הקומפוננטה מציבים ב-Layout במקום הקומפוננטות שמוצגות שם עד עכשיו.
5. Switch ו-Route: בתוך Switch רק ראוט אחד נבחר. כל Route מקבל path ו-component: הנתיבים /home, /products (עם ProductList), /support ו-/contact-us. שימו לב לייבא את Switch ו-Route מ-react-router-dom ולא מ-Material UI, וכתיבת הנתיבים נעשית במקפים (kebab-case), לא ב-camelCase.
6. הבדיקה: בכתובת הראשית לא מוצג כלום כי אין ראוט עבורה. הקלדה ידנית של /home, /products וכו' מציגה את הקומפוננטה המתאימה. התפריט עדיין לא עובד, ויטופל בסרטון הבא.
7. exact: בלי exact, כתובת כמו /home עם המשך כלשהו עדיין מציגה את Home, כי הראוט מתאים לכל נתיב שמתחיל בו. הוספת exact לכל ראוט מונעת זאת.
שימו לב
בהמשך מוסיפים ראוט ברירת מחדל, דף Page Not Found וטיפול בתפריט.
אחרי ההרצאה אפשר להגדיר ראוטים בסיסיים בפרויקט ריאקט ולהציג קומפוננטה לפי הכתובת בדפדפן.
השיעור הבא בקורס: הגדרת ניתוב בתפריט הראשי באתר - ריאקט

פרקי ההרצאה: יצירת קומפוננטת ניתוב - ריאקט

  1. 00:00

    התקנת React Router DOM

  2. 01:17

    תפקיד ה-Layout

  3. 03:34

    עטיפה בתגית BrowserRouter

  4. 04:50

    יצירת Product List Component

  5. 06:50

    יצירת קומפוננטת Routing נפרדת

  6. 09:25

    שימוש בקומפוננטת Switch

  7. 11:13

    הגדרת תגית Route עם path

תמלול ההרצאה: יצירת קומפוננטת ניתוב - ריאקט

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

  1. 00:02

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

  2. 00:17

    אנחנו צריכים להתקין איזושהי חבילה שמאפשרת לגלם ראוטינג בפרויקט ריאקט. עכשיו, אם פרויקט ריאקט בנוי רק בג'אווה סקריפט ולא בטייפ סקריפט, אז ההתקנה היא npm i react router dom אם ההתקנה אם סליחה פרויקט הריאקט הוא טייפ סקריפט אז אנחנו צריכים גם את ההתקנה הזאת וגם התקנה

  3. 00:46

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

  4. 01:05

    אז יש לנו פה, ההתקנה השנייה היא strudel-types/ ואותו הדבר react/router/dom. בואו נתקין את זה.

  5. 01:17

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

  6. 01:31

    ב-Layout היה לנו כאן את כל המבנה של ה-Layout, ראינו פה את ה-Header והיינו את ה-Side איפה שיש את התפריט ולמטה יש את ה-Footer ובאזור הראשי של ה-Main אנחנו כל פעם השתמשנו בקומפוננטה אחרת.

  7. 01:49

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

  8. 02:11

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

  9. 02:45

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

  10. 03:20

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

  11. 03:36

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

  12. 03:58

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

  13. 04:08

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

  14. 04:28

    home קומפוננט זה קומפוננטה שיש לנו. כשלוחצים על support, אנחנו רוצים להציג באזור הזה את ה-support קומפוננט שיש לנו. contact us אמור להציג באזור הזה את ה-contact us שיש לנו.

  15. 04:43

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

  16. 05:09

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

  17. 05:33

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

  18. 06:18

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

  19. 06:48

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

  20. 07:07

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

  21. 07:23

    נהוג לקרוא לקומפוננט הזה ראוטינג, אז בואו נייצר קריייט, הקומפוננט הוא מאוד פשוט, אז ניקח כ-fc ונוסיף אותו לאזור של הלייאוט, הגיוני שהוא שייך ללייאוט שלנו, אז בואו נגדיר כאן layout area, בתוכו אנחנו רוצים ראוטינג, אין לנו צורך בפרופס, היה לנו צורך בסטייט, זה משהו מאוד סימפל.

  22. 07:54

    בואו נראה, layout area, מנגנון ראוטינג, קומפוננט ראוטינג, go, את זה אפשר לסגור, ובתוך ה-LayoutArea אנחנו אמורים לראות פה קומפוננטת ראוטינג.

  23. 08:09

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

  24. 08:29

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

  25. 08:42

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

  26. 08:57

    זאת אומרת, אם יוזר לוחץ על home, אנחנו פה רוצים לראות את הקומפוננטה של ה-home. אם יוזר לוחץ על product, אנחנו רוצים לראות פה את ה-product list.

  27. 09:05

    support, בוא תראה לי את ה-support קונטקט אס, זה הקומפוננט של הקונטקט אס. זאת אומרת, מה כתוב פה ב-route, לפי זה אנחנו רוצים שהוא יציג לנו את הקומפוננטה.

  28. 09:18

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

  29. 09:33

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

  30. 09:55

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

  31. 10:18

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

  32. 10:42

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

  33. 11:04

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

  34. 11:13

    וזאת תגית רקע. שאנחנו נותנים לה סדרה של הגדרות. דבר ראשון, מה ה-route שאנחנו רוצים? זה מוגדר על ידי path. בואו נתחיל עם ה-route הראשון, נסתכל רגע מה יש פה, זה לא חייב להיות כרגע לפי הסדר, נתחיל עם home.

  35. 11:34

    אז אני בא ואני אומר, אם ה-route שלי זה /home, חשוב שהוא יתחיל ב-slash, אנחנו רוצים להציג את ה-component home, לא מ-material UI, מאצלנו.

  36. 11:51

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

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

ההרצאה הקודמת: ניתוב בריאקט - React Routing

ההרצאה הבאה: הגדרת ניתוב בתפריט הראשי באתר - ריאקט

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

  • ניתוב סטטי צף
  • ניתוב ספציפי
  • ניתוב בתפריט עליון - ROUTING
  • ניתוב לפי IP - VPN split tunnel

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

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