يعد خطاف useEffect جزءًا أساسيًا من React، مما يسمح لك بتنفيذ تأثيرات جانبية في المكونات الوظيفية. إليك تفصيلًا تفصيليًا:
useEffect(() => { // Your side effect code here return () => { // Cleanup code (optional) }; }, [dependencies]);
وظيفة التأثير : الوسيطة الأولى هي وظيفة تحتوي على رمز التأثير الجانبي. سيتم تشغيل هذه الوظيفة بعد التزام العرض بالشاشة.
وظيفة التنظيف (اختيارية) : يمكن لوظيفة التأثير إرجاع وظيفة التنظيف التي ستستدعيها React عندما يتم إلغاء تحميل المكون أو قبل تشغيل التأثير مرة أخرى. وهذا مفيد لتنظيف الاشتراكات أو أجهزة ضبط الوقت.
مصفوفة التبعيات: الوسيطة الثانية هي مصفوفة من التبعيات. يعمل التأثير فقط عندما تتغير إحدى التبعيات. إذا قمت بتمرير مصفوفة فارغة ([])، فسيتم تشغيل التأثير مرة واحدة فقط بعد العرض الأولي (مثل ComponentDidMount).
import React, { useEffect, useState } from 'react'; const DataFetchingComponent = () => { const [data, setData] = useState(null); useEffect(() => { fetch('https://api.example.com/data') .then(response => response.json()) .then(data => setData(data)) .catch(error => console.error('Error fetching data:', error)); }, []); // Runs only once after the initial render return{data ? JSON.stringify(data) : 'Loading...'}; };
import React, { useEffect } from 'react'; const EventListenerComponent = () => { useEffect(() => { const handleResize = () => { console.log('Window resized:', window.innerWidth); }; window.addEventListener('resize', handleResize); // Cleanup function to remove the event listener return () => { window.removeEventListener('resize', handleResize); }; }, []); // Runs only once after the initial render returnResize the window and check the console.; };
import React, { useEffect, useState } from 'react'; const TimerComponent = ({ delay }) => { const [count, setCount] = useState(0); useEffect(() => { const timer = setInterval(() => { setCount(prevCount => prevCount 1); }, delay); // Cleanup function to clear the timer return () => clearInterval(timer); }, [delay]); // Runs every time `delay` changes returnCount: {count}; };
يعد خطاف useEffect أداة قوية للتعامل مع التأثيرات الجانبية في المكونات الوظيفية، مما يجعله ضروريًا لتطوير React الحديث. ومن خلال فهم بناء الجملة وأفضل الممارسات، يمكنك إدارة سلوك المكونات والآثار الجانبية بشكل فعال.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3