
this, ולכן אין גישה ל-this.state או ל-setState כמו בקלאס.useState כפונקציית ג'נריק עם סוג הנתונים של ה-state, ושולחים לה ערך דיפולט - זה תפקיד שמילא הקונסטרקטור בקלאס.const [state, setState] = useState(...) מקבלים את שני הפריטים לפי מיקום במערך, ובוחרים בעצמנו את שמות המשתנים.this.state ב-state, וכל קריאה ל-setState בקריאה לפונקציה החדשה שהוחזרה מ-useState.use. בניגוד לקלאס, אין צורך שהפונקציה תהיה arrow function, כי אין this לשמר.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על useState ב-React Hooks» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
פונקציית ה-react hook הראשונה שאנחנו הולכים לראות זאת ה-use state. חזרנו כאן לדף ה-home שהיה לנו כל מיני דברים בסיסיים ב-react ואחד הדברים שלמדנו זה היה state וזה היה הקומפוננט הזה.
כאשר אנחנו לחצנו על show best seller item אז בעצם הקומפוננט אמר לנו תשמע ה-best seller item זה אייריש קופי והוא עולה 3.9 דולר והלחצן פשוט עדכן את ה-State ואז ה-Component יכל לרנדר את עצמו ולהציג את המידע הזה.
כשלמדנו את זה ראינו שאם המידע לא היה ב-State אז הוא כן היה משתנה אבל ה-Component לא היה יודע מזה ולא היה מציג אותו. זאת הסיבה שהיינו חייבים להעלות את המידע לרמת ה-State של ה-Component.
אנחנו בנינו אותו בעזרת Class Component כי וואלה לא ראינו איך עושים את זה ב-Functional Component עם React Hooks זה רק עכשיו אנחנו רואים.
אז הנה ה-Best Seller, בואו ניכנס אליו, זה בעצם ה-Class, היה לנו פה אינטרפייס שאמר מה המידע שאנחנו רוצים לנהל והאייטם, היה ה-Best Seller Item וה-Best Seller Price ופה שמנו את האינטרפייס, התחלנו אותו במחוז הדרגה ו-0 והיה לנו פה לחצן אחד שפשוט קרא לפונקציה הזאת והפונקציה עדכנה את ה-State,
ראינו שלעדכן את ה-State אפשר אך ורק בעזרת הפונקציה setState שלחנו פה את המידע, ברגע שעדכנו את ה-State אז React רינדרה שוב את הקומפוננט, היא קראה עוד פעם לפונקציית רנדר ורינדרה את הקומפוננט ואז הצגנו את המידע העדכני יותר.
אנחנו רוצים לעשות את זה בעזרת functionalComponent בכדי לראות איך בעצם זה ניתן לביצוע אם אנחנו רוצים לעבוד עם functionalComponent ולא classComponent.
דבר כזה פשוט אין צורך להרים קלאס בשבילו, אפשר לעשות את זה עם פונקציה, כאשר כמובן שבשביל לנהל סטייט אנחנו נצטרך לראות את ה-UseState, אז בואו נעשה את זה.
בואו ניקח את כל זה ונשים בהערה, לא נמחק אותו מהפרויקט הזה, נשים אותו באיזושהי הערה, נבוא לפה ונבנה לעצמנו פונקשן, השם הוא אותו השם כמובן, והיא מחזירה JSX-Element, אנחנו רוצים כן לחשוף אותה החוצה, והנה יש לנו פרנקשיון על קומפורננט, מה אנחנו רוצים להחזיר? יש לנו פה את ה-return, כל הקוד הזה אנחנו רוצים להחזיר מהפונקציה,
נשים אותו, נוריד את ההערה, ומן הסתם אנחנו מקבלים שגיאות על ה-dis, כי אני לא קלאס, אז ברור, אין לי דיס, אין לי state כי אני לא קלאס, לא ירשתי משום קלאס, ובכל זאת אנחנו רוצים לנהל בפונקציה הזאת את ה-state הזה, שה-state מכיל אובייקט שפה הוא נקרא state אוטומטית,
ופה הגדרנו מה יש בו, בואו ניקח רגע את וגם אותו נעביר לפה בכדי שזה יהיה הסוג נתונים שאנחנו משתמשים איתו, זה ה-State שלנו, הסוג נתונים של ה-State.
ומה אנחנו צריכים לבצע? אז אנחנו רוצים בתוך הפונקציה, ב-Functional Component שלנו פה, לקרוא לפונקציית המערכת useState.
הנה, כל הפונקציות שהן נחשבות ReactHook מתחילות ב-use, ושימו לב שיש פה מלא פונקציות שמתחילות ב-use.
useState, התפקיד שלה זה לאפשר ל-functional component לנהל state. אנחנו רואים שהמערכת הביאה אותה מפה, רק בואו נשים את זה למטה.
אנחנו רוצים שזה יהיה באזור הזה, כי זה ממש שני דברים שונים, פשוט לא מחקתי את הקוד של ה-class component, שיהיה לנו בדוגמאות אם נרצה. עוד משהו אני רואה שחסר לי פה זה האימפורט