PracticU

יצירת Global State בתוך MobX

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

יצירת Global State בתוך MobX
בניית ה-Global State שינוהל בהמשך על ידי MobX: רשימת מכולת עם פריטים. בשלב הזה אין עדיין MobX בקוד, רק מחלקת הנתונים.
השלבים העיקריים
1. תיקיית state: מעבירים את תיקיית Redux לתוך תיקייה חדשה בשם state (גרירה ב-Visual Studio Code) ופותחים בה תיקיית MobX. ההעברה נבדקה: אין שגיאות והאתר עדיין עובד. בפרויקט אמיתי בוחרים רק טכניקה אחת. ה-State של Redux נשאר כמו שהוא ולא מערבבים אותו עם MobX.
2. הדוגמה: רשימת מכולת, שמתאימה לאתר של מוצרי מזון. כמה קומפוננטות יעבדו איתה, ולכן שמים אותה באזור גלובלי.
3. המודל: GroceryItemModel ב-TypeScript עם name (איזה פריט) ו-amount (כמה). הכלי ליצירת קומפוננטות לא הצליח ליצור מודל, ולכן הוא נוצר ידנית.
4. המחלקה: בקובץ GroceryListState.ts מייצאים class GroceryList עם items מסוג אוסף של GroceryItemModel, שמתחיל כמערך ריק.
5. האובייקט: const groceryList = new GroceryList() מיוצא החוצה, וגם המחלקה מיוצאת. מחלקה מתחילה באות גדולה ומשתנה באות קטנה.
6. נתונים זמניים: בכדי לראות משהו מוסיפים כמה פריטים: Bread 1, Olive oil 1, Bread 2, Candies 4. הקוד הזה יוסר כשהפריטים יתווספו דרך UI.
שימו לב
הקוד הזה פשוט בהרבה מהתשתית שנדרשה ב-Redux, אבל הוא עדיין רק מחלקה עם נתונים. פונקציות להוספה ומחיקה יתווספו בהמשך.
אחרי ההרצאה יש Global State ראשוני לרשימת מכולת, מוכן להצגה ולניהול ב-MobX.
השיעור הבא בקורס: הצגת Global State בתוך MobX

פרקי ההרצאה: יצירת Global State בתוך MobX

  1. 00:00

    יישום שימוש ב-MobX בקוד

  2. 00:38

    העברת תיקיית הסטייט

  3. 01:19

    פתיחת תיקיית MobX

  4. 01:58

    בניית רשימת מכולת כסטייט גלובלי

  5. 02:41

    הגדרת מחלקת grocery list

  6. 03:20

    הוספת מודל לפריטים

תמלול ההרצאה: יצירת Global State בתוך MobX

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

  1. 00:02

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

  2. 00:16

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

  3. 00:28

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

  4. 01:00

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

  5. 01:26

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

  6. 01:45

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

  7. 02:24

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

  8. 02:37

    אז אני אבנה כרגע grocery list state type script. הנה יש לי פה רשימת מכולת, כרגע אני בונה את ה-state בלבד, את הדאטה.

  9. 02:51

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

  10. 03:28

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

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

ההרצאה הקודמת: מה זה MobX - ריאקט

ההרצאה הבאה: הצגת Global State בתוך MobX

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

  • State Drawable
  • Swarm - Global Mode
  • יצירת POD בתוך - Kubernetes
  • יצירת דשבורד בתוך ElasticSearch - חלק 1

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

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