PracticU

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

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

הגדרת ניתוב בתפריט הראשי באתר - ריאקט
התפריט של האתר עדיין לא מנתב לשום מקום, וההרצאה מראה איך לחבר אותו לראוטינג כך שהאתר יישאר Single Page Application.
מה קורה ואיך מתקנים
1. הפתרון הראשון שלא מספיק: מחליפים את # בקישורי התפריט בנתיבים /home, /products, /support ו-/contact-us. הקומפוננטות אכן מתחלפות.
2. הבעיה: הדפדפן גולש בפועל לשרת וטוען מחדש את כל הדף, כולל ההדר, התפריט והפוטר. זה לא רצוי ב-Single Page Application, כי כל ה-JavaScript כבר נמצא בצד הלקוח.
3. איך רואים את זה: ב-index.html שבתיקיית public שמים תגית marquee זמנית עם המילה "Testing". בכל לחיצה על קישור הטקסט מתחיל מחדש, כי כל ה-index.html נטען מחדש.
4. הסיבה: תגית a עם href גורמת לדפדפן לגלוש לשרת, בלי קשר לכוונה שלנו.
5. הפתרון: מחליפים את תגיות ה-a בתגית NavLink של react-router-dom, עם התכונה to שמקבלת את הנתיב, למשל to="/home". NavLink יורשת מ-Link ומוסיפה יכולות. מאחורי הקלעים זו תגית a בלי href שגולש לשרת: JavaScript משנה את הכתובת בדפדפן, ומנגנון הראוטינג מציג את הקומפוננטה המתאימה.
6. התוצאה: הטקסט ב-marquee לא מתחיל מחדש, אין טעינה מחדש, האתר מהיר יותר ואין תקשורת מיותרת עם השרת. אחרי הבדיקה מסירים או מעירים את ה-marquee.
אחרי ההרצאה אפשר לחבר תפריט לראוטינג עם NavLink בלי לגרום לטעינה מחדש של הדף.
השיעור הבא בקורס: עיצוב קישורים בתפריט הראשי באתר - ריאקט

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

  1. 00:00

    הצגת הקומפוננט המתאים מהתפריט

  2. 01:06

    בדיקת פעולת התפריט

  3. 02:07

    בעיית הגלישה לשרת

  4. 03:10

    אפליקציית עמוד יחיד - Single Page Application

  5. 03:48

    הדגמה עם תגית marquee

  6. 05:08

    הבעיה בתגית a

  7. 05:55

    שימוש בתגית NavLink

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

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

  1. 00:02

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

  2. 00:25

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

  3. 00:36

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

  4. 01:06

    בואו נסתכל רגע, ונלחץ על Home, עובד? נלחץ על Products, והנה דף המוצרים. Support, עובד פרפקט. Contact us, מדהים. אבל האם באמת המערכת כרגע עובדת כמו שצריך?

  5. 01:30

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

  6. 01:51

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

  7. 02:18

    אז האם זה טוב? לא טוב? מה הבעיה עם זה? אז זה לא טוב וזה די גרוע מפני שאנחנו בונים אפליקציה ב-react ואנחנו רוצים שהאפליקציה שלנו תהיה single page application.

  8. 02:36

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

  9. 03:10

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

  10. 03:34

    אם אנחנו הולכים ל-public אנחנו רואים שיש לנו פה את האינדקס html. האינדקס html זה הדף ה- html האחד והיחיד שיש ב- backend וכמובן הוא מגיע לפרונט והמערכת מתחילה להיכנס לתוקף ולהכניס לתוכו את הקומפוננטות הדרושות.

  11. 03:55

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

  12. 04:10

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

  13. 04:26

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

  14. 04:39

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

  15. 05:06

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

  16. 05:24

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

  17. 05:48

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

  18. 06:12

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

  19. 06:31

    טו, זה מתבצע על ידי טו,

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

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

ההרצאה הבאה: עיצוב קישורים בתפריט הראשי באתר - ריאקט

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

  • ניתוב בתפריט עליון - ROUTING
  • הגדרת ניתוב ברמת סיביות - חלק 1
  • בניית צ'אט באתר
  • ניתוב סטטי צף

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

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