PracticU

שימוש ב-MobX Actions

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

שימוש ב-MobX Actions
אחרי שהוגדרו ה-Actions ב-state, ההרצאה מחברת אותם לקומפוננטות: טופס להוספת פריט, אייקון מחיקה בכל שורה וכותרת שמנקה את כל הרשימה.
חיבור קומפוננטה ל-MobX
1. הכנת props: מגדירים interface עם ה-state הדרוש, כאן groceryList, ומשתמשים בו כסוג ה-props.
2. שליחת ה-props: הקומפוננטה האב מעבירה את ה-state לקומפוננטה.
3. עטיפה ב-observer: כך הקומפוננטה קולטת שינויים.
בניית הטופס והוספה
4. הטופס: שדה טקסט עם autofocus לשם הפריט, שדה מספר לכמות עם מינימום 1 ומקסימום 100, וכפתור add. הטופס משתמש ב-useForm עם register ו-handleSubmit. ערך ברירת המחדל של הכמות הוא 1, והוספת ולידציה נשארת לבחירתכם.
5. שליחה: בפונקציית ה-submit קוראים ל-props.groceryList.addItem עם הפריט שהתקבל. הפריט מופיע בטבלה מיד, בלי state בקומפוננטת הרשימה, כי ה-observer מעדכן את ה-props.
6. איפוס אחרי שליחה: עם setValue מאפסים את השם ואת הכמות ל-1.
מחיקה וניקוי
7. מחיקת פריט: מוסיפים עמודה חדשה בטבלה עם קישור # ואייקון delete של Material UI. הפונקציה deleteHandler מקבלת אינדקס וקוראת ל-removeItem. ב-onClick כותבים arrow function שקוראת ל-deleteHandler עם האינדקס, כי אירוע לא מעביר אינדקס.
8. ניקוי הרשימה: כותרת העמודה הופכת לקישור שמפעיל clearHandler, והוא קורא ל-clearList. הפונקציה לא מקבלת פרמטרים, ולכן אפשר להעביר אותה ישירות.
סיכום הזרימה
Action משנה את ה-Observable, ה-Observable מדווח על השינוי וה-Observer מציג אותו. זה עובד גם אם הפעולה מגיעה מקומפוננטה אחרת בדף.
עכשיו אפשר לחבר Actions של MobX לטופס ולכפתורי מחיקה וניקוי.
השיעור הבא בקורס: הוספת Computed Values ב-MobX

פרקי ההרצאה: שימוש ב-MobX Actions

  1. 00:00

    שימוש ב-Actions מהקומפוננטות

  2. 00:46

    שלוש פעולות לחיבור MobX

  3. 01:44

    הפיכת הקומפוננטה ל-Observer

  4. 02:23

    בניית טופס ההוספה

  5. 03:25

    שילוב useForm בטופס

  6. 04:27

    הוספת CSS לטופס

  7. 05:51

    קריאה ל-add item בסאבמיט

תמלול ההרצאה: שימוש ב-MobX Actions

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

  1. 00:02

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

  2. 00:29

    מה שאנחנו רוצים לעשות אנחנו רוצים קודם כל ללכת לקומפוננטה שלנו אנחנו רוצים להשתמש עם זה נתחיל ב-Add Grocery Item ומה שנקרא לחבר בצורה נכונה את מוביקס לקומפוננטה. לחבר את מוביקס לקומפוננטה דורש שלוש פעולות פעולה ראשונה אנחנו מכינים props אז יש לנו פה אינטרפייס Add גרוסרי אייטם פרופס יש לו את הגלובל סטייט שאנחנו צריכים עבור אותה קומפוננטה כרגע יש לנו רק גלובל סטייט אחד שקשור למוביקס וזה

  3. 01:10

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

  4. 01:31

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

  5. 01:51

    Observer ואנחנו עוטפים על ידי אותו Higher Order Component את הקומפוננטה שלנו, עכשיו אנחנו יכולים גם לקלוט שינויים אם אנחנו צריכים. Good, אז חיברנו את הקומפוננטה שלנו כמו שצריך לתשתית המוביקס, כמו שמוביקס דורשת בעצם, ואם אנחנו רוצים להשתמש ב-Global State אנחנו עושים את זה על ידי אותו Props.

  6. 02:20

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

  7. 02:59

    type number כי amount זה מספר בואו נגדיר מינימום 1 נגדיר מקסימום אולי 100 לא הגיוני שיהיה יותר מ-100 בצורה כזאת ונגדיר לנו לחצן add אנחנו רוצים לשלב פה את נושא הטפסים אז יש לנו const use form שמתעסק עם סוג grocery item מודל בצורה כזאת ומביא לנו את register ומביא לנו את handle submit

  8. 03:35

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

  9. 03:54

    כמובן שחשוב שיהיה לנו ולידציה אבל אנחנו כבר מכירים את הנוהל אז אתם יכולים להוסיף בעצמכם ולידציה אם אתם רוצים on submit אנחנו רוצים handle submit ולשלוח איזושהי פונקציית submit שאנחנו רוצים לבנות פה אז הנה יש לנו פה function submit שמקבלת אייטם

  10. 04:17

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

  11. 04:42

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

  12. 04:58

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

  13. 05:31

    ניתן איזה default שכבר על ההתחלה יש פה איזה שהוא 1 ואז יוזר לא צריך להכניס אם יש לו 1. Good אז אנחנו רוצים עכשיו אחרי שיש לנו את ה-UI מוכן להתחיל ולהשתמש קודם כל באקשן הראשון שבנינו add item מאיפה אנחנו רוצים לקרוא לו ברגע שיש לנו את ה-item.

  14. 05:56

    add item מקבלת item מסוג grocery item model. יש לנו אותו בדיוק פה כשהיוזר מבצע סאבמיט הנה פה קיבלנו את האייטם אז שימו לב כמה זה פשוט props.

  15. 06:10

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

  16. 06:29

    בואו נבדוק את זה. אז מה שאנחנו רוצים להכניס בואו נכניס כאן bread אחד add הנה אנחנו רואים אותו פה וכבר אני רואה שאנחנו צריכים לאפס את שני החבר'ה האלה אחרת היוזר סתם יכול ללחוץ הרבה.

  17. 06:46

    בשביל לאפס אותם אנחנו צריכים כאן set value ולהשתמש עם set

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

ההרצאה הקודמת: הוספת פונקציות ופעולות - MobX Actions

ההרצאה הבאה: הוספת Computed Values ב-MobX

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

  • Actions on WebDriver
  • שימוש ב-NuGet
  • שימוש ב-ModelState
  • בדיקות מקרי שימוש

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

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