
npm i redux-devtools-extension.composeWithDevTools מהחבילה. כי createStore לא מקבלת אותה ישירות, עוטפים אותה יחד עם ה-middleware בפונקציה compose מ-Redux.config מגדירים isDevelopment כ-process.env.NODE_ENV === 'development', וביצירת ה-store משתמשים באופרטור טרינארי: בפיתוח שולחים את ה-enhancer ואחרת undefined.dispatch מופיע במחסנית. אחרי login רואים את הפעולה, ובשונה מזה אפשר לראות לכל פעולה את Action (type ו-payload), את ה-State בתצוגות Tree, Chart ו-Raw ואת ה-Diff מול המצב הקודם.setAllEmployees ו-setAllProducts מופיעות בעת טעינת הדפים.jump לפעולה מסוימת, או skip כדי לראות איך ייראו הנתונים בלי אותה פעולה.Save מייצא JSON עם כל הפעולות. אחרי רענון, שמוחק את ה-Redux, אפשר להעלות אותו ולקבל חזרה את כל ה-state, גם אחרי logout.הטקסט המלא של הדקות הראשונות בהרצאה «רידקס - Redux Developer Tools» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז אנחנו מגיעים לכלי הבא והכלי הבא זה כלי שמאפשר לבדוק ספציפית את ה-Redux. בואו נתקין אותו. הכלי הזה זה Chrome Extension אז ניכנס לגוגל ונחפש Redux DevTools הנה הוא פה.
בואו ניכנס אליו Add to Chrome Add Extention הנה אנחנו רואים אותו כאן ונבצע גיבוע לכלי הזה הנה הסיכה. כמובן זה לא משהו שאנחנו חייבים לעשות אבל הנה אנחנו רואים אותו כאן שוב פעם הוא מראה שאין אתר בריאקט כרגע או באתר שמשתמש ברידאקס ליתר דיוק ובואו נבצע איזשהו ריפרש
ועדיין אנחנו לא רואים. בכדי לעבוד עם הכלי הזה אנחנו צריכים לחבר משהו לקוד שלנו ומה שאנחנו צריכים לעשות זה פשוט התקנה. אז אנחנו רוצים לגשת ולפתוח טרמינל ולבצע התקנה של npm.i.redux.dev.tools. extension.go אז הוא מתקין לו את זה ומה שאנחנו צריכים לעשות זה לחבר משהו ל-redux ואנחנו מחברים את זה ברמת ה-store.
ניתן לו להתקין כמה זמן שהוא צריך. בואו ניגש לתיקייה של ה-redux. הסטור שלנו ומה שאנחנו רוצים לעשות זה אובייקט הסטור.
אנחנו רואים שאובייקט הסטור מוגדר על ידי קריאט סטור, יש לנו פה Redusers, יש לנו Apply Middleware שמקבל את כל ה-Middleware שלנו ואנחנו רוצים גם להאזין לשינויי רידאקס על ידי אותו כלי.
איך אנחנו עושים את זה? אנחנו צריכים להוסיף כאן פונקציה מיוחדת שמגיעה מהכלי הזה. הפונקציה נקראת Compose with DevTools. אם אני אנסה להוסיף אותה כאן, Compose with DevTools, אני רואה אותה כאן.
אבל מה הבעיה? הבעיה היא ש-Create Store לא מקבלת עוד Create with DevTools, והדבר הזה הוא לא בדיוק Middleware. אז מה שאנחנו צריכים לעשות, אנחנו צריכים להשתמש בעוד פונקציה שנקראת Compose.
הנה היא כאן. Compose מאפשרת לנו גם לחבר Middleware וגם לחבר Development Tools. אנחנו מחברים את ה-Compose with DevTool. הוא מגיע מ-Redux DevTools Extension שראינו וה-Compose מגיע מ-Redux.
אז הנה חיברנו אותו וכעת אם אנחנו חוזרים בואו רגע נרפרש, אנחנו רואים שהוא נדלק כזה בירקרק עם אדום. אוקיי, זה אומר שהוא מאזין לאתר הזה ומבין שיש פה בעצם פעילות של רידקס.
אבל לפני שנעבור ונראה איך עובדים איתו, איזשהו משפט לגבי זה. הכלי הזה זה כלי שזולל פרפורמנס והוא לא מתאים למצב פרודקשן.
אנחנו לא כל כך רוצים בפרודקשן להדליק את הכלי הזה. לכן, מה שכדאי לנו לבצע זה איזשהו בדיקה האם אנחנו נמצאים כרגע ב-Development או ב-Production ולפי זה לדעת האם אנחנו רוצים להדליק את הכלי הזה או לא להדליק את הכלי.
בואו ניגש ל-Config ובואו נוסיף, האמת בואו נוסיף כאן ב-Config איזושהי הגדרה Public is Development ונכניס לתוכו את הביטוי הבא process.env.node.env האם זה שווה ל-development אם זה true זה אומר שאנחנו ב-development אפשר כמובן לשכפל את זה ל-production ולבדוק האם אנחנו ב-production ואז אפשר להשתמש או עם זה או עם זה במהלך האפליקציה שלנו אבל עכשיו
ב-config יש לנו יכולת לדעת האם אנחנו ב-development כן או לא לפי זה אנחנו יכולים לבצע פה איזשהו if ולפי זה ליצור את ה-store אני אעשה את זה באופרטור טרינארי אולי, פונקציה מחזירה Store Enhancer, אוקיי, בסדר.
בואו נבדוק, נגיד לו פה שאנחנו רוצים לבדוק את קונפיג, קונפיג מי? קונפיג שלנו, איפה הקונפיג שלנו? לא מוצא לי את הקונפיג שלנו, למה אתה לא מוצא לי אותו?
בואו נלחץ עליו דאבל קליק, אולי כאן הוא ייתן לי. אה הנה הוא פה, זה הקונפיג שלנו. config.isDevelopment אם כן תן לי את זה אם לא תן לי איזה undefined אז אנחנו בעצם לא שולחים שום דבר כ-enhancer יופי אז עכשיו חיברנו את זה אנחנו כמובן כרגע כן נמצאים ב-development
אז הכלי יעבוד בואו נבדוק נחזור לפה נרפרש ואנחנו רואים שהכלי הזה דלוק. מה בעצם אנחנו עושים איתו? קודם כל לחיצה פותח לנו