PracticU

כפתור SUBMIT בטפסים של ריאקט - React Forms

בלי כתוביותעם כתוביות
PracticU › קורס ריאקט - React › כפתור SUBMIT בטפסים של ריאקט - React Forms
מילון מושגים:
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
React - ספריית JavaScript לבניית ממשקי משתמש מבוססי רכיבים, שפותחה על ידי פייסבוק.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.
הוק - נקודת חיבור שמאפשרת להריץ קוד מותאם בשלב מסוים של תהליך. ב-React, מנגנון לניהול מצב ויכולות ברכיבים.
מאפיין - תכונה שמצמידים לרכיב ומתארת אותו או את התנהגותו, למשל מאפיין של תגית HTML או שדה באובייקט.
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.

כפתור SUBMIT בטפסים של ריאקט - React Forms
הטופס כבר מחובר ל-register, אבל לחיצה על הכפתור עדיין לא מייצרת אובייקט ProductModel. כאן מחברים את אירוע ה-submit לפונקציה שמקבלת את האובייקט המוכן.
למה צריך handleSubmit
1. onSubmit בלבד לא מספיק: כותבים פונקציה submit ומחברים אותה ל-onSubmit של הטופס. היא נקראת בלחיצה על הכפתור, אבל הדף גם מתרענן, וזה לא רצוי באפליקציית Single Page.
2. אין אובייקט: onSubmit הוא אירוע רגיל של React ומעביר Synthetic Event. React לא הופכת את נתוני הטופס לאובייקט ProductModel. אילו עשתה זאת, לא היינו צריכים ספרייה חיצונית.
3. שכבת ביניים: handleSubmit היא פונקציה של react-hook-form. קוראים לה ומעבירים לה את הפונקציה שלנו, והיא מחזירה פונקציה חדשה שמתאימה ל-onSubmit.
4. מה קורה בפועל: כשהטופס נשלח, פונקציית הביניים קוראת את הנתונים, משתמשת ב-register כדי לדעת איזה ערך שייך לאיזה מאפיין, ומעבירה לפונקציה שלנו אובייקט ProductModel.
5. בדיקה: מחליפים את ה-alert ב-console.log של המוצר. בקונסול רואים אובייקט עם name, price, stock ו-FileList שמכיל את התמונה שנבחרה.
פקודות והגדרות
- onSubmit={handleSubmit(submit)} - קריאה לפונקציה, לא רק הפניה אליה.
- הפונקציה submit מקבלת פרמטר מסוג ProductModel.
אחרי ההרצאה אפשר לקבל מהטופס אובייקט מוכן, והצעד הבא הוא לשלוח אותו לשרת.
השיעור הבא בקורס: שליחת מידע לשרת בריאקט - React Forms

פרקי ההרצאה: כפתור SUBMIT בטפסים של ריאקט - React Forms

  1. 00:00

    אירוע onSubmit בטופס

  2. 00:36

    מניעת רענון הדף ב-SPA

  3. 01:14

    קבלת אובייקט המוצר

  4. 02:11

    השימוש ב-handleSubmit

  5. 02:45

    המרת המידע לאובייקט מודל

תמלול ההרצאה: כפתור SUBMIT בטפסים של ריאקט - React Forms

הטקסט המלא של הדקות הראשונות בהרצאה «כפתור SUBMIT בטפסים של ריאקט - React Forms» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    עכשיו מה שאנחנו רוצים לעשות זה להצליח איכשהו לקחת את כל המידע הזה ולהפוך אותו לאובייקט מסוג רודקט מודל בכדי לשלוח את האובייקט הזה לשרת.

  2. 00:15

    אוקיי, איך אנחנו עושים את זה? דבר ראשון, מה בעצם מתרחש כאשר אנחנו לוחצים על הלחצן? מה שמתרחש זה אירוע שנקרא onSubmit. אנחנו רוצים לקרוא לפונקציה.

  3. 00:29

    בואו נבנה פה איזושהי פונקציה ונקרא לה Submit. אם אנחנו באים לפה ואומרים תשמע הנה פונקציה submit תקרא לה ברגע שנלחץ על הלחצן בשביל לבצע submit זאת הפונקציה שתתבצע.

  4. 00:42

    בואו נשים פה איזשהו alert submit form ניגש רגע לטופס שלנו נמלא את הפרטים אולי נבחר באיזושהי תמונה יש לנו פה כל מיני עיקרות ונבצע add והנה אנחנו רואים submit form והטופס כמובן שולח את עצמו לשרת מבצע רפרש זה ליתר דיוק זה משהו שאנחנו לא רוצים שיתבצע כי אנחנו סינגל פייג' אפליקיישן

  5. 01:07

    אנחנו לא רוצים לבצע רפרש אבל מה שאנחנו רואים זה שהצלחנו לקרוא לפונקציה זה בסדר אבל מה שלא בסדר פה זה איפה האובייקט שלנו איך אני משיג את אותו אובייקט מסוג פרודקט מודל כי אני רוצה שהספרייה הזאת תביא לי אובייקט מוכן שאלה הערכים שיש בו אוטומטית מה שהיה פה נכנס לניים ואוטומטית מה שהיה פה נכנס לפרייס

  6. 01:31

    וכדומה האם אנחנו יכולים שהפונקציה הזאת תקבל כרגע את האובייקט שלנו פרודקט מסוג product model אז כמובן שזה לא עובד בפני ש-onsubmit זה אירוע של react זה לא אירוע של הספרייה use form וreact לא יודעת לבצע את הטיפול הזה היא לא לוקחת את כל המידע הזה ואוטומטית הופכת אותו לאובייקט מסוג פרודקט

  7. 02:00

    מודל ומביאה לנו. אם היא הייתה עושה את זה לא היינו צריכים את הספרייה החיצונית הזאת. ברור שאם ריאקט מטפלת לי במשהו אני לא צריך ללכת ולהתקין ספריות חיצוניות שעושות לי את זה.

  8. 02:11

    בגלל שריאקט לא יודעת לקחת מידע מטופס ולהפוך אותו לאובייקט מוכן היינו צריכים ספרייה שעושה את זה.

  9. 02:18

    מן הסתם אנחנו רואים שיש לנו פה איזושהי בעיה כי ריאקט אומרת לי תשמע, onSubmit זה אירוע שהוא אירוע רגיל של HTML. אם אתה רוצה תן פה את הארגס הרגילים שהם מסוג Synthetic Event כמו שאנחנו כבר מכירים.

  10. 02:35

    זה אני יודעת לעבוד איתו, אני לא יודעת לעבוד עם כל מיני אירובייקטים מוזרים שלך. אז בשביל זה אנחנו צריכים את HandleSubmit. HandleSubmit זאת עוד פונקציה של הספרייה הזאת שהיא יודעת לקחת את המידע להפוך להיותו לאובייקט פרודקט מודל ולהביא לי.

  11. 02:57

    זאת אומרת, מה שאנחנו צריכים, אנחנו לא צריכים את ה-args הזה, אני אתן ממנו. אנחנו כן רוצים שהפונקציה תקבל פרודקט מסוג פרודקט מודל.

  12. 03:08

    onSubmit,

לקורס המלא: קורס ריאקט אונליין

ההרצאה הקודמת: חיבור של רכיב לטופס עם React Hook

ההרצאה הבאה: שליחת מידע לשרת בריאקט - React Forms

הרצאות קשורות מקורסים אחרים

  • Forms - Event Object
  • שימוש במספר טפסים - Multiple Forms

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס NodeJS