קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ Typescript ♦ מדריך ריאקט – react hooks | Custom Hook

מדריך ריאקט – react hooks | Custom Hook

וינר יאיר 23 באוקטובר 2021 אין תגובות

ברוכים הבאים לשיעור האחרון במדריך ריאקט – React Hooks . הפעם נעבור על איך לייצר הוק משלכם! מה שנקרא custom hook.

למה נחוץ לנו custom hooks

בריאקט יש לנו פוקציות (או קלאסים) שמייצגים רכיבים, כל רכיב מגיע עם היכולות שלו כגון : מבנה , פונקציונאליות , דטה , סטיילינג.

לפעמים נרצה להשמיש פונקציונליות זהה\דומה בין רכיבים שונים. וכאן נכנס לתמונה כל נושא של custom hooks.

בכל אפליקיצה או ממשק אתם תראו תקיות כמו share או util , שלרוב מאגדות פוקציונליות שמשותפת לאזורים שונים בממשק. עם ריאקט נוכל לייצר והשתמש הוקים משלנו בקלות רבה. למשל ניקח דוגמה לcustom hook אפשר לייצר עבור קריאות שונות של api . במקום להשתמש בfetch כמקומות שונים באפליקציה נוכל להגדיר זאת בעזרת useFetch .

כמה נקודות חשובות שבונים custom hook :

  • שם הקובץ חייב להתחיל עם המילה use , והמשך השם זה כבר בחירה שלכם(use"+ any string you want").
  • תמיד יקבל מידע בעזרת argument.
  • תמיד תחזיר נתונים כמובן.
  • לרוב יעשה שימוש בuseState.

בואו נממש את הדוגמה של useFetch:

import React, {useState, useEffect} from "react";

function useFetch(url: string, options? : any) : {loading : boolean, error : Error | null, data: any} {
  const [data, setData] = useState<any>(null);  
  const [error, setError] = useState<Error | null >(null);  
  const [loading,setLoading ] = useState<boolean>(false);
  
  useEffect(() => {
      let isMouted: boolean = true;
      setLoading(true);
      
      fetch(url,options)
      .then(res=>res.json())
      .then(data=>{
          if(isMouted){
              setData(data);
              setError(null);
          }
      })
      .catch((error)=>{
          if(isMouted){
              setError(error);
              setData(null);
          }
      }).finally(()=>setLoading(false))
  }, [url,options]);
  return {loading, error , data}
};
export default useFetch;

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

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

כנרצה להשתמש בזה באחד מהרכיבים שלנו כל שנצטרך לעשות זה כך:

import React from 'react'
import useFetch from './useFetch';

export default function ButtonClicked(props: any) {
   
    const {loading ,error , data} = useFetch('https://jsonplaceholder.typicode.com/posts');

      if (loading) return <p>Loading...</p>;
      if (error) return <p>Something went wrong...</p>;

    return (
        <div>
        {data && data.map((post: any)=>{
          return <p key={post.id}>{post.title}</p>
        })}
        </div>
    )
}

מה קורה פה בעצם,
ייבאנו את ה custom hook שלנו לרכיב והשתמשנו בAPI מאתר json placeholder . והגדרנו את loading ,error , data . ואז בחרנו להציג מערך של כותרות של פוסטים במידה והדטה הגיע בלי שגיאות.

כמה פשוט וכמה שימושי!

לסיכום custom hooks ומדריך ריאקט hooks

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

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

פוסטים קשורים:

מדריך ריאקט useState hookמדריך ריאקט – react hooks | useState מדריך ריאקט – react hooks | useRefמדריך ריאקט – react hooks | useRef מדריך ריאקט שיעור useContextמדריך ריאקט – react hooks | useContext מדריך ריאקט שיעור useReducerמדריך ריאקט – react hooks | useReducer
react hooks לימוד ריאקט מדריך חינם react מדריך ריאקט קורס ריאקט

אודות המחבר

יאיר וינר להציג את כל הפוסטים של וינר יאיר


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 תגובה אחת
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד