
redux קובץ store.ts, נפרד מקבצי ה-state.combineReducers של Redux ומעבירים לה אובייקט עם כל ה-reducers: reducer של מוצרים ושל עובדים. היא מאחדת אותם לאובייקט אחד. אם יש עוד, מוסיפים אותם לאובייקט הזה.createStore, ומייצאים את ה-Store כ-export default.dispatch, getState ו-subscribe.getState מתקבל אובייקט עם המפתחות productsReducer ו-employeesReducer. אבל reducer היא פונקציה, והערך בתוכה הוא state, כך שהשם מטעה.productsState: productsReducer ו-employeesState: employeesReducer. אז store.getState() מחזיר productsState ו-employeesState, ובתוך productsState נמצאים המוצרים.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת Store ב-Redux» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הגענו לדבר האחרון בבנייה של התשתית, שימו לב כמה כתיבה יש לנו כאן ברידאקס רק בשביל לבנות את התשתית בכדי שיהיה לנו קל ונוח להשתמש אחר כך ברחבי האפליקציה בסטייט הזה ובספרייה של רידאקס.
ובעצם אחד החסרונות של רידאקס הכתיבה הזאת שיש בשביל לבנות את התשתית אבל זה בעצם רידאקס זאת הספרייה אנחנו רוצים לבנות את ה-Store זה משהו שהוא נפרד לסטייטים.
אני סוגר את הסטייטים ואני הולך לספרייה עצמה של רידאקס ומוסיף פה Store TS. זה בעצם הקובץ שיכיל את אובייקט ה-Store.
הדבר הראשון שאנחנו צריכים לבצע זה לקרוא לפונקציה שנקראת Combine Reducers. הפונקציה הזאת שייכת לספרייה של רידאקס. הנה הפונקציה, נמצאת כאן, ומה שאנחנו צריכים לעשות זה לקרוא לה ולהעביר לה אובייקט משלנו האובייקט הזה מכיל רשימה של כל הרדיוסרים שקיימים.
יש לנו רדיוסר אחד שנקרא product reducer בואו נראה אם הוא מגלה לנו אותו no suggestions למה אתה לא מוצא לי אותו הרי כתבתי אותו פה הנה הוא למה אתה לא מוצא לי אותו בוא נראה הנה הוא מצא ואובייקט נוסף נקרא EmployeesReducer, תגלה לי אותו גם כן,
הנה הוא כאן. ואנחנו צריכים לקבל אובייקט ConstReducers. אלו כל הרדיוסרים שקיימים. יש לי רק שניים, אם היו לי יותר אז הייתי שם פה את כל רשימת הרדיוסרים לפונקציה אחת ששייכת לתשתית שעושה קומביין לכולם ומחזירה לי אובייקט אחד ויחיד להתחיל את כל ה-Reducers האלה.
יש פה משהו שאנחנו הולכים לשנות, משהו מבחינת ה-Naming, אבל תכף תבינו למה. עכשיו, מה אנחנו עושים עם האובייקט הזה? עכשיו אנחנו יוצרים את אובייקט ה-Store, שאותו אנחנו רוצים בכל האפליקציה, ואנחנו יוצרים אותו על ידי פונקציה שנקראת CreateStore.
פונקציית CreateStore גם היא שייכת לספרייה של הרידאקס, הנה אנחנו רואים אותה כאן, והיא מקבלת את אובייקט ה-Reducers, שיצרנו שנייה לפני זה, זאת אומרת קודם כל אנחנו עושים קומביין לכל הרדיוסרים לאובייקט אחד ואז שולחים אותו לסטור ואת אובייקט הסטור אנחנו מחצינים החוצה אקספורט על ידי דיפולט כי זה הדבר היחידי שיש לנו.
בגדול זה הכל אבל אנחנו בהמשך בקבצים אחרים כמובן הולכים להשתמש בסטור. איך אנחנו משתמשים בסטור? יש לנו כאן את הפעולות שדיברנו שאנחנו רוצים לבצע.
הנה ה-Dispatch, הנה ה-Get State, הנה ה-Subscribe ועוד. אז כאשר לדוגמה אנחנו הולכים ל-Get State