
use, כאן useTitle. הפונקציה מקבלת מחרוזת title ומיוצאת עם export default. hook יכול להחזיר מה שרוצים, כמו useState שמחזיר מערך, אבל כאן לא צריך להחזיר כלום.document.title הוא side effect, ואסור לבצע אותו ישירות בזמן הרנדר של קומפוננטה. לכן הקוד נכתב בתוך useEffect, ומערך תלויות ריק גורם לו לרוץ פעם אחת, כמו component did mount. hook רשאי להשתמש ב-hooks אחרים.useTitle בקומפוננטות שהן דף שלם, ושולחים להן כותרת: Northwind Home בדף הבית, Northwind Contact Us ב-Contact Us ו-Northwind Support בדף התמיכה. קומפוננטות כמו layout, shared ו-style אינן דפים ולכן לא מקבלות כותרת.הטקסט המלא של הדקות הראשונות בהרצאה «בניית Custom React Hook» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
היכולת הבאה שלנו לבנות משהו בכדי לבצע שימוש חוזר בקוד זה React. אנחנו יכולים לבנות מה שנקרא Custom React Hook שמבצע איזושהי פעולה כמובן רק ב-Functional Component אבל אז אנחנו יכולים להשתמש עם זה שוב ושוב בכל Functional Component שאנחנו רוצים.
בואו נבנה Custom React Hook ממש ממש פשוט שכל מה שהוא עושה הוא מאפשר לקבוע מה ה-title פה למעלה במקום שיהיה לנו פה title של react-app שכמובן זה לא title שהייתי רוצה באפליקציה שלי react-hook הזאת אנחנו פשוט אומרים לה איזה title והיא עושה את זה.
טוב בואו נבנה את זה עכשיו בגלל שאנחנו לא הולכים לבנות קומפוננט אנחנו הולכים לבנות סוג של פונקציה כי react-hook זה פונקציה ובגלל שזה משהו שהולך לשרת את כל הקומפוננטות בעצם שאנחנו יכולים כל קומפונטה שתרצה להגדיר את ה-Title אז בואו נבנה את זה באזור של ה-Services שגם ככה ה-Services מיועדים לקוד חוזר.
אז בואו ניכנס ל-Services ונוסיף לעצמנו את הפונקציה הזאת וכל React Hook צריכה להתחיל במילה use אז פשוט נתחיל במילה use ו-Title נבנה useTitle נגדיר TS ויש לנו פה סך הכל אפשרות לבנות פונקציה יש לנו פה פונקשן use title ואנחנו בעצם לא מחזירים כלום במקרה הזה שימו לב שריאקט הוק כן יכולה להחזיר מה שבא לנו אם נחזיר סטרינג אז הריאקט הוק תחזיר סטרינג
אנחנו ראינו ריאקט הוק use state החזיר המערך אז אין בעיה להחזיר מה שבא לנו שימו לב שכרגע אנחנו לא צריכים להחזיר אנחנו כן רוצים לקבל את הטייטל זה סטרינג ואנחנו רוצים לחשוף אקספורט פאנקשן use title אז שימו לב ש... סליחה אקספורט דיפולט
use title אז שימו לב שלבנות react hook זה פשוט פונקציה שמתחילה במילה ויכולה לעשות שימוש בתוכה בעוד React Hooks. אז מה אנחנו בעצם רוצים לעשות?
אנחנו רוצים לגשת לדוקיומנט נקודה טייטל ולהכניס לדרכו את הטייטל אבל ברגע שעשינו את זה זה נחשב סייד אפקט כי אנחנו ניגשנו בעצמנו כביכול לאדום או למשהו של הדפדפן.
ואם מישהו יקרא לפונקציה הזאת בתוך functional component, בתוך הרנדר לדוגמה של functional component, זה יהיה side effect בתוך functional component וזה אסור לביצוע.
לכן אנחנו רוצים בתוך ה-react hook שלנו להשתמש עם react hook use effect שלמדנו. ו-use effect אומרת לנו, תשמעו, תנו לי פונקציה, אין פונקציה ואם אתם רוצים להריץ אותה רק פעם אחת כמו component did mount תנו לי פה מערך ריק את כל הדברים האלה ראינו ב-react hooks ועכשיו בתוך הפונקציה תעשו איזה side
effect שאתם רוצים ואני רוצה את זה אז עכשיו מה שבנינו זה פונקציה משלנו שנקראת use title שמקבלת סטרינג ועושה את העבודה הזאת של ה-side effect בשביל לחסוך במי שמשתמש איתנו את הקוד הזה.
יכולנו לעשות פה גם קוד רב, כרגע אנחנו לא צריכים קוד רב, אבל גם אם היה לנו פה הרבה קוד, בעצם חסכנו את הקוד הזה ממי שמשתמש בנו. אנחנו עכשיו רוצים להשתמש ב-UseTitle.
בואו ניגש לכל מיני קומפוננטות שנחשבות דפים, לדוגמה Home. יש קומפוננטות שלא נחשבות דפים, זה לא נחשב דף וזה קומפוננטה וזה לא נחשב דף וזה לא נחשב דף, אבל כל ה-Home כן נחשב דף הקומפוננטה שנמצאת