PracticU

האזנה לשינויים ברידקס
Redux Subscribing to Store Changes

בלי כתוביותעם כתוביות
PracticU › קורס ריאקט - React › האזנה לשינויים ברידקס Redux Subscribing to Store Changes
מילון מושגים:
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
סטייט - המידע על מצבו הנוכחי של רכיב או אפליקציה בזמן נתון, שמשתנה ומשפיע על מה שמוצג.
לייאאוט - ארגון וסידור הרכיבים החזותיים על המסך או בדף, כמו מיקום כפתורים, טקסט ותמונות.
Callback - פונקציה שמועברת כארגומנט לפונקציה אחרת כדי שתופעל מאוחר יותר, לרוב בסיום פעולה.

האזנה לשינויים ברידקס Redux Subscribing to Store Changes
מתי צריך להאזין לשינויים ב-Redux עם subscribe, ומתי אין בכך צורך. השיעור בונה דוגמה שבה ההאזנה נחוצה באמת.
למה לא תמיד צריך האזנה
כשעוברים בין קומפוננטות, כל קומפוננטה נוצרת מחדש ו-componentDidMount רץ שוב וקורא את המידע העדכני מ-Redux. לכן מוצר שנוסף הופיע ברשימה גם בלי subscribe. האזנה נחוצה רק כשקומפוננטה מוצגת כל הזמן, ובזמן שהיא מוצגת קומפוננטה אחרת משנה את המידע.
השלבים העיקריים
1. קומפוננטה לדוגמה: נבנית קומפוננטה בשם total products שמציגה את מספר המוצרים. ה-State שלה כולל count, והיא קוראת אותו ב-componentDidMount מתוך store.getState().productState עם setState.
2. ניסוי ראשון: בתוך פרטי מוצר הקומפוננטה עובדת, כי היא נוצרת מחדש בכל כניסה, ומציגה 82 ואחרי מחיקה 81.
3. הבעיה: כשמניחים אותה ב-Layout, באזור שתמיד מוצג, componentDidMount רץ פעם אחת. אחרי מחיקת מוצר המספר לא מתעדכן.
4. הפתרון: ב-componentDidMount קוראים ל-store.subscribe ומעבירים לו callback שמריץ את אותו קוד קריאה ועדכון של ה-State המקומי.
5. התוצאה: מחיקה מורידה את המספר מ-80 ל-79 מיד, והוספה מחזירה ל-80, בלי שהקומפוננטה נוצרת מחדש.
שימו לב
ה-callback מופעל בכל dispatch, גם כשהשתנה נתון אחר כמו עובד. זה חיסרון מסוים, אבל כך Redux עובד.
אחרי השיעור אפשר לבנות קומפוננטה שנשארת מוצגת ומתעדכנת מיד כשמישהו משנה את המידע ב-Redux.
השיעור הבא בקורס: הפסקת האזנה לשינויים ברידקס Redux Unsubscribing to Store Changes

פרקי ההרצאה: האזנה לשינויים ברידקס Redux Subscribing to Store Changes

  1. 00:00

    קונספט ההאזנה לשינויים

  2. 00:38

    מעבר בין קומפוננטות ללא האזנה

  3. 01:42

    מתי צריך האזנה לשינויים

  4. 02:18

    בניית קומפוננטת Total Products

  5. 03:16

    הגדרת State לקומפוננטה

  6. 03:59

    קריאת מידע ב-Component Did Mount

  7. 04:52

    ניסוי הקומפוננטה ב-Details

תמלול ההרצאה: האזנה לשינויים ברידקס Redux Subscribing to Store Changes

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

  1. 00:02

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

  2. 00:17

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

  3. 00:31

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

  4. 01:02

    את הבננה לא עשינו שום האזנה איך זה יכול להיות? כי אנחנו עברנו בין קומפוננטות. הקומפוננטה הזאת זאת קומפוננטה אחרת. כשאנחנו חוזרים בחזרה לרשימת המוצרים, אנחנו עוד פעם מפעילים את כל ה-Component Did Mount, ושוב פעם טוענים את כל המידע מ-Redux, ולכן נטען לנו המידע העדכני.

  5. 01:32

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

  6. 01:58

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

  7. 02:18

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

  8. 02:33

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

  9. 02:51

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

  10. 03:04

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

  11. 03:25

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

  12. 03:59

    אותו כל מה שאנחנו רוצים לעשות זה לגשת ל-ComponentDeadMount ואנחנו רוצים להביא את המידע הזה מתוך ה-Redux כי יש לנו את המידע ב-Redux או שאמור להיות לנו את המידע ב-Redux.

  13. 04:19

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

  14. 04:42

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

  15. 04:55

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

  16. 05:13

    פה זה אמור לעבוד כמו שצריך, תכף תראו.

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

ההרצאה הקודמת: שימוש ברידקס - Redux

ההרצאה הבאה: הפסקת האזנה לשינויים ברידקס - Redux Unsubscribing to Store Changes

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

  • האזנה ל-PayPal עם Frida SSL Unpinning
  • האזנה ברשת ויצירת שיתוף SMB על Kali
  • התקנת תוכנות מחנות של מיקרוסופט - Microsoft Store

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

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