
null: קומפוננטה בלי UI יכולה להחזיר null.useHistory לניתוב, קריאה ל-authService.logout(), alert עם הודעת היציאה והניתוב עם history.push.useEffect עם מערך תלויות ריק, כך שהקוד רץ פעם אחת. הקריאה ל-useEffect עצמה חייבת להיות ישירות בגוף הקומפוננטה.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת Logout Component» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז אנחנו מגיעים ללוג אאוט והשאלה היא האם לוג אאוט זה גם קומפוננט אין לי פה טופס שאני צריך למלא אין לי פה באמת יוזר אינטרפייס אז למה זה קומפוננט אז זה לא אמור להיות קומפוננט כל מה שאני רוצה זה איזה שהוא ראוט מסוים שאם אני גולש לראוט הזה לוג אאוט בעצם מתבצע או אפילו ולא חייב להיות ראוט אם לוחצים על איזה קליק על איזה לינק או משהו כזה
אני רוצה רק לקרוא לפונקציה הזאת שמבצעת לוג אאוט, וזהו, זה מה שאנחנו צריכים. אז ברמת העיקרון זה בדיוק זה. אני לא צריך פה UI, אני לא צריך פה קומפוננטה, אני צריך רק קריאה לפונקציה הזאת.
אבל רגע, אני צריך עוד כמה דברים. אני צריך אולי הודעה שאתה הצלחת להתנתק בהצלחה, כמו שיש הודעה שאתה הצלחת להתחבר בהצלחה. לא בטוח, אולי, אם אני לא רוצה, אז לא.
אבל אם אני כן, אז אני צריך פה גם הודעה. הודעה זה לא התפקיד של ה-Service, הודעה זה סוג של UI. אני צריך אולי לנתב לאיזשהו מקום אחר, אולי ל-Home Component, כי אולי היינו באיזשהו מקום שאתה יכול להיות בו רק אם אתה לוגד אין, ולכן אני רוצה לנתב, כי אני כבר לא לוגד אין, עשיתי לוג אאוט.
אז א', יש לנו פה עוד כמה שורות קוד חוץ מקריאה לפונקציה הזאת. ב', יש לנו פה סוג של UI, כי אולי יש פה איזושהי הודעה, אז כן יש פה משהו שבוא נגיד קשור ל-UI.
גימל, אולי כן כדאי לעשות איזשהו ראוט, ואם אני גולש אליו, אז משהו מתרחש, כי יש לי בסופו של דבר איזשהו לינק של לוג-אאוט. לינק זה משהו שקשור אולי לראוט.
זאת אומרת שלא חייבים לבנות קומפוננטה של לוג-אאוט, וזה גם נראה לא הגיוני לבנות קומפוננטה של לוג-אאוט, אבל זה לא טעות כן לבנות קומפוננטת לוג-אאוט, אפילו שאין לי בה באמת html וזה בדיוק מה שאני אעשה.
אני אבנה קומפוננטה שנקראת logout האמת ששכחתי לצרף אותה. בואו נבנה logout וזה בעצם יהיה דוגמה מאוד מאוד מיוחדת ויוצאת דופן לקומפוננטה שאין לה באמת ui ודרך אגב היה לנו כבר קומפוננטה כזאת שזה בעצם זאת, זאת אין לה באמת ui יש לה את הסוויץ' הזה אבל זה לא ממש יוזר אינטרפייס ועדיין זה היה קומפוננטה.
אז כאן אנחנו רוצים לוג אאוט ותכף תראו, לא לוגו, סליחה, לוג אאוט ותכף תראו איך בייסיקלי אנחנו בונים את הקומפוננטה הזאת וזה בסדר שזה קומפוננטה רק אין לה ממשק משתמש משל עצמה.
היא כן טובה כקומפוננטה כי פה אנחנו כן צריכים להכניס איזשהו קומפוננט, אז הנה פתרנו את הבעיה, הנה יש לנו נתיב ולכן יש לזה כמה יתרונות.
מה אנחנו עושים בתוך הקומפוננטה? קודם כל אין לה UI אז אני מעיף לה את ה-CSS. ביי ביי, אוי שזה לא לוג אין, שאני לא בטעות יוחק דברים אחרים. זה לוג אאוט, הנה היא