تعد الخطافات المخصصة في React ميزة قوية تسمح لك باستخراج المنطق وإعادة استخدامه عبر مكونات متعددة. إنها تمكنك من تغليف منطق الحالة المعقد، مما يجعل مكوناتك أكثر نظافة وأسهل في الصيانة. فيما يلي نظرة عامة سريعة ومثال على كيفية إنشاء واستخدام الخطافات المخصصة.
الخطاف المخصص هو في الأساس وظيفة JavaScript يبدأ اسمها بالاستخدام وقد يستدعي خطافات أخرى بداخلها. فيما يلي مثال بسيط لخطاف مخصص يدير العداد:
import { useState } from 'react'; // Custom Hook: useCounter function useCounter(initialValue = 0) { const [count, setCount] = useState(initialValue); const increment = () => setCount(c => c 1); const decrement = () => setCount(c => c - 1); const reset = () => setCount(initialValue); return { count, increment, decrement, reset }; } export default useCounter;
يمكنك استخدام الخطاف useCounter في أي مكون وظيفي:
import React from 'react'; import useCounter from './useCounter'; function CounterComponent() { const { count, increment, decrement, reset } = useCounter(0); return (); } export default CounterComponent;Count: {count}
إليك رابط مخصص أكثر تقدمًا لجلب البيانات:
import { useState, useEffect } from 'react'; function useFetch(url) { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const fetchData = async () => { try { const response = await fetch(url); if (!response.ok) throw new Error('Network response was not ok'); const result = await response.json(); setData(result); } catch (error) { setError(error); } finally { setLoading(false); } }; fetchData(); }, [url]); return { data, loading, error }; } export default useFetch;
يمكنك استخدام خطاف useFetch في أحد المكونات لجلب البيانات:
import React from 'react'; import useFetch from './useFetch'; function DataFetchingComponent() { const { data, loading, error } = useFetch('https://api.example.com/data'); if (loading) return); } تصدير DataFetchingComponent الافتراضي؛Loading...
; if (error) returnError: {error.message}
; return (); } export default DataFetchingComponent;Data:
{JSON.stringify(data, null, 2)}
تعد الخطافات المخصصة طريقة رائعة لتغليف المنطق ومشاركة الوظائف عبر مكوناتك بطريقة نظيفة وقابلة للصيانة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3