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

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

וינר יאיר 16 בספטמבר 2021 אין תגובות

useReducer הינו HOOK שמנהל מידע של הקומפוננטה, בדומה לuseState. קודם כל useReducer מגיע מתוך הרעיון של reduce בjavascipt.

אז מה ההבדל useReducer ו לuseState

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

נציג דוגמה הפשוטה של שימוש ב useReducer ואסביר בהמשך:

import React, {useReducer} from 'react'


const ACTIONS = {
    INCREMENT : 'increment',
    DECREMENT : 'decrement'
}
function reducer(state : any, action : any) : any{
    switch (action.type) {
        case ACTIONS.INCREMENT : 
        return  {count: state.count + 1}
        
        case ACTIONS.DECREMENT : 
        return  {count: state.count - 1}
           
        default: 
        return  state;
        
    }
  }


 function AddMoreCrocs() {
    const [state, dispatch] = useReducer(reducer, {count: 0});
    
    function increment() {
        dispatch({type: ACTIONS.INCREMENT})
    }
    function decrement() {
        dispatch({type: ACTIONS.DECREMENT})
    }
    return (
        <div>
            <button onClick={increment} >increment</button>
            <button onClick={decrement} >decrement</button>

            <span>{state.count}</span>
        </div>
    )
}

export default AddMoreCrocs;

אז הנה דוגמה מאד פשוט של השימוש ב useReducer . אפשר לראות ש useReducer מקבל שני משתנים:

  1. פונקציה חיצונית שתחזיר את ה state החדש
  2. ערך ראשוני. (initialState)

על מנת לשנות את ערכי ה state יהיה עלינו להשתמש בdispatch שהינה פונקציה, שמקבל ערך וכן מריצה את הפונקציה שבנינו ומשנה את ה state ומחזירה אותו.

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

מי שמכיר redux מכיר הייטב את התצורות הללו לניהול מידע של state.

מתי נכון להשתמש ב useReducer ?

לרוב לא עושים שימוש ב useReducer במצבים כמו שהצגנו פה, שימושים קלים ופשוטים לרוב יישמו עם useState . ברכיבים מורכבים יותר שמנהלים מידע רב ומורכב , כן תראו לנכון להשתמש ב useReducer .

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

לסיכום useReducer

כלי מאד עוצמתי לניהול מידע של קומפוננטה, פשוט ליישום . בפוסט הבא אדבר על שני הוקים: useCallback ו useMemo

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

מדריך ריאקט useState hookמדריך ריאקט – react hooks | useState מדריך ריאקט שיעור useEffectמדריך ריאקט – react hooks | useEffect מדריך ריאקט שיעור useContextמדריך ריאקט – react hooks | useContext מדריך ריאקט – classes, functional component & hooks
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 אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד