PracticU

הסבר על Interceptors בריאקט

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

הסבר על Interceptors בריאקט
Interceptor הוא מנגנון שמיירט בקשות (request) ותשובות (response) של גלישת אג'אקס ומאפשר להריץ קוד משלנו בכל אחת מהן. ההרצאה מראה איך מגדירים אחד כזה בספרייה שבה מבצעים את הגלישה.
איך בונים
1. מופע משלנו: במקום האובייקט הכללי של הספרייה יוצרים מופע חדש בעזרת create, וקוראים לו myAxios. הוא עובד בדיוק כמו המקורי (גם מוצרים וגם עובדים נשלפים דרכו), אבל אפשר להוסיף לו interceptors.
2. שני אובייקטים: למופע יש interceptors.request ו-interceptors.response. הראשון מריץ קוד בכל פעם שנשלחת בקשה, והשני בכל פעם שמתקבלת תשובה.
3. interceptor של בקשה: קוראים ל-myAxios.interceptors.request.use ושולחים callback שמקבל את אובייקט ה-request. כאן מדפיסים ל-console את המילים start request ואת האובייקט. הקוד רץ לפני שהבקשה יוצאת, ואפשר להוסיף לבקשה דברים, למשל משהו שרוצים לשלוח תמיד לשרת.
4. חובה להחזיר: ה-callback חייב לבצע return לאובייקט הבקשה, אחרת הבקשה לא תמשיך להתבצע.
5. interceptor של תשובה: בדומה, ב-interceptors.response.use מדפיסים את התשובה אחרי שהגיעה. אפשר גם להמיר את המידע, וגם כאן חייבים להחזיר את ה-response.
מה רואים בפועל
אחרי רענון ופתיחת F12, לחיצה על Employees מדפיסה את הבקשה (כתובת, headers, שיטת get או post, אין data) ואת התשובה (ה-data עם מערך העובדים, ה-headers וקוד הסטטוס).
הקוד הוגדר כרגע על מופע שקיים רק בקומפוננט הזה. בסרטון הבא מוציאים אותו לשירות נפרד שיהיה זמין בכל הפרויקט.
אחרי ההרצאה אפשר לשלב קוד שרץ אוטומטית על כל בקשה ותשובה.
השיעור הבא בקורס: העברת Interceptors לקובץ נפרד

פרקי ההרצאה: הסבר על Interceptors בריאקט

  1. 00:00

    מהו Interceptor

  2. 01:13

    יצירת מופע עם axios.create

  3. 01:59

    שני סוגי ה-Interceptors

  4. 02:57

    בניית Request Interceptor

  5. 03:33

    החזרת אובייקט הריקווסט

  6. 04:19

    בניית Response Interceptor

תמלול ההרצאה: הסבר על Interceptors בריאקט

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

  1. 00:02

    אינטרספטור זה מנגנון שמסוגל כביכול ליירט ה-request או את ה-response. כאשר אנחנו מבצעים גלישה לאנשהו, אנחנו גולשים כרגע ל-products, וגם עכשיו אנחנו גולשים ל-products, ועכשיו אנחנו גולשים ל-employees, בכל אדג'קס request כזה אנחנו יכולים לבנות מנגנון שפשוט משלב קוד ב-request ו/או ב-response.

  2. 00:35

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

  3. 00:45

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

  4. 01:02

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

  5. 01:22

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

  6. 02:00

    אנחנו יכולים להגיע למוצרים ולעובדים ואנחנו רואים שקיבלנו אותם אבל דרך המופע החדש הזה אנחנו יכולים להוסיף Interceptors יש לו שני אובייקטים Request ו-Response אם אנחנו משתמשים ב-Request Interceptor אנחנו מוסיפים קטע קוד שהתבצע כל פעם שעושים ריקווסט אם אנחנו משתמשים ב-Response Interceptor אנחנו מוסיפים קטע קוד

  7. 02:32

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

  8. 02:49

    אז אנחנו נכנסים ל-my-access.interceptors.request.use ואנחנו שולחים לה callback. ה-callback מקבלת אובייקט ה-request, זאת אומרת ש-use קוראת ל-callback שלנו ונותנת לנו את אובייקט ה-request ואנחנו כותבים פה איזשהו קוד.

  9. 03:10

    בואו ניכנס לתוך הקוד ונדפיס console.log תארט ריקווסט ונציג את אובייקט הריקווסט על המסך, על הקונסול.

  10. 03:28

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

  11. 03:46

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

  12. 04:05

    כרגע רק הצגנו אותו על הקונסול. בואו נבצע את אותו הדבר עבור ה-Response myAxios.interceptors.Response.Use.Response in אובייקט הרספונס שלנו אנחנו רוצים toConsol.Log.

  13. 04:26

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

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

ההרצאה הקודמת: הצגת רשימת העובדים

ההרצאה הבאה: העברת Interceptors לקובץ נפרד

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

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