PracticU

ריאקט דיבאג עם Chrome
React Debugging

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

ריאקט דיבאג עם Chrome React Debugging
איך מדבגים אפליקציית React בכלי המפתחים של Chrome: עוצרים את הריצה בשורה מסוימת, בודקים נתונים ומתקדמים בקוד צעד אחר צעד.
השלבים העיקריים
1. למצוא את הקוד: ב-F12, בלשונית Sources, תחת localhost:3000, מאתרים את קובץ הקומפוננטה, כאן הוספת מוצר.
2. נקודת עצירה: לוחצים על מספר השורה כדי לשים breakpoint. כשלוחצים add הריצה נעצרת שם. מרחפים מעל משתנה כדי לראות את ערכיו, למשל שם, מחיר ומלאי.
3. חלונית Scope: Local מציגה את המשתנים של הפונקציה, כולל this. Closure מציגה משתנים מחוץ לפונקציה שהיא משתמשת בהם, כל closure הוא scope נוסף. יש גם closure של המודול ואת האובייקט הגלובלי, שבדפדפן הוא window.
4. חלונית Watch: מוסיפים ערכים או ביטויים לצפייה, כמו product, product.name או product.price < 0, והם מתעדכנים תוך כדי הדיבאג. יש גם חלוניות עם רשימת ה-breakpoints והנתיב של קריאות הפונקציות (call stack).
5. Step over: מבצע את השורה ועובר לבאה. אם זו קריאה לפונקציה, היא מתבצעת בלי שהדיבאגר נכנס אליה.
6. Step into: נכנס לתוך הפונקציה. אם נתקלים בקוד אסינכרוני, כמו setTimeout, הוא נכנס גם אליו.
7. Step: לא מתעסק באסינכרוניות וקופץ לשורה הסינכרונית הבאה. הפונקציה האסינכרונית תרוץ רק כשהמחזור הנוכחי יסתיים.
8. Resume: ממשיך עד ה-breakpoint הבא, או יוצא ממצב דיבאג. הכפתור Step out לא עבד אצל המרצה, והוא הציע לשים breakpoint בשורה אחרי ולהשתמש ב-resume.
9. מילת מפתח debugger;: כותבים אותה בקוד, והיא עוצרת את הריצה רק כש-F12 פתוח. כך מגיעים ישר לקוד בלי לחפש אותו.
שימו לב
אחרי שינוי בקוד ייתכן שצריך לרענן את הדף לפני שהשינוי נראה בדיבאגר.
עכשיו אפשר לעצור את האפליקציה בנקודה שבוחרים, לבדוק נתונים ולהתקדם בקוד כדי לאתר באגים.
השיעור הבא בקורס: ריאקט דיבאג עם VS Code Visual Studio Code

פרקי ההרצאה: ריאקט דיבאג עם Chrome React Debugging

  1. 00:00

    מודול דיבאגינג וטיפול בשגיאות

  2. 00:45

    דיבאג הוספת מוצר עם F12

  3. 01:24

    מציאת הקוד ב-Sources

  4. 01:58

    הגדרת breakpoint

  5. 03:07

    חלונית Scope והמשתנים

  6. 04:38

    חלונית Watch למעקב ערכים

  7. 05:16

    ה-Call Stack ונקודות העצירה

  8. 05:51

    שימוש ב-Step Over

תמלול ההרצאה: ריאקט דיבאג עם Chrome React Debugging

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

  1. 00:02

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

  2. 00:27

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

  3. 00:48

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

  4. 01:06

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

  5. 01:18

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

  6. 01:43

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

  7. 02:01

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

  8. 02:15

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

  9. 02:26

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

  10. 02:41

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

  11. 02:56

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

  12. 03:10

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

  13. 03:23

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

  14. 03:32

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

  15. 03:51

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

  16. 04:17

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

  17. 04:35

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

  18. 04:47

    הוא קפץ לי מאיזושהי סיבה למשהו אחר. Product. אוקיי, אז הנה אנחנו רואים את product. בואו נוסיף גם משהו יותר ספציפי product.name ואנחנו רואים שזה אפל.

  19. 05:00

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

  20. 05:16

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

  21. 05:27

    יש לנו פה את ה-call stack, ה-call stack זה נתיב הפונקציות, איזה פונקציה קרה לאיזה פונקציה קרה לאיזה פונקציה עד שהגיעה לפונקציה שלנו.

  22. 05:34

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

  23. 05:48

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

  24. 06:16

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

  25. 06:31

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

  26. 06:49

    בואו ניכנס ונוסיף עוד

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

ההרצאה הקודמת: שימוש ב-Context Object בתוך CC

ההרצאה הבאה: ריאקט דיבאג עם VS Code - Visual Studio Code

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

  • דיבאגינג בכרום - Client Debugging using Chrome
  • Chrome Driver
  • Debugging in JavaScript
  • דיבאג ב-Visual Studio

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

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