عند إنشاء تطبيقات الويب الحديثة، يكون الأداء هو المفتاح. يتوقع المستخدمون تطبيقات سريعة وسريعة الاستجابة، وحتى التأخير الطفيف يمكن أن يؤدي إلى الإحباط. على الرغم من قوة React، إلا أنها قد تعاني أحيانًا من اختناقات في الأداء، خاصة مع نمو التطبيقات من حيث الحجم والتعقيد. لحسن الحظ، هناك العديد من التقنيات لتحسين الأداء، بما في ذلك الحفظ والتحميل البطيء والمزيد.
في هذا الدليل، سنقوم بتفصيل بعض الطرق الأكثر فعالية لتحسين الأداء في تطبيقات React الخاصة بك. سنغطي أساسيات الحفظ والتحميل البطيء وأدوات مثل React Profiler لمساعدتك في تحديد الاختناقات وإصلاحها. هيا بنا نبدأ!
فكر في تطبيق الويب الخاص بك كسيارة - بغض النظر عن مدى مظهرها الأنيق من الخارج، إذا لم يكن أداؤها جيدًا، فستتأثر تجربة المستخدم. في تطبيقات React، يشير هذا "الأداء" إلى مدى سرعة عرض مكوناتك ومدى كفاءة تحديثها عندما تتغير البيانات أو الحالة.
أثناء توسع تطبيق React الخاص بك، قد تؤدي إعادة عرض المكونات دون داع أو تحميل حزم ثقيلة مرة واحدة إلى أداء أبطأ. ولهذا السبب يعد تعلم تقنيات تحسين أداء React أمرًا بالغ الأهمية لبناء تطبيقات سلسة وعالية الأداء.
الحفظ هي كلمة فاخرة تعني ببساطة التخزين المؤقت لنتيجة استدعاء دالة حتى لا تضطر إلى إعادة حسابها في كل مرة. في React، يساعد الحفظ على منع عمليات إعادة التصيير غير الضرورية من خلال تذكر نتيجة التصيير السابق واستخدام تلك النتيجة المخزنة مؤقتًا إذا لم يتغير شيء.
لنبدأ بـ React.memo. يمنع هذا المكون ذو الترتيب الأعلى المكون من إعادة العرض إذا لم تتغير خصائصه.
const MyComponent = React.memo(function MyComponent({ name }) { console.log('Rendered'); returnHello, {name}; });
في هذا المثال، يقوم MyComponent بإعادة العرض فقط إذا تغير اسم الخاصية. إذا قمت بتمرير نفس قيمة الاسم، فسوف تتخطى React عملية العرض، مما يؤدي إلى تحسين الأداء.
بعد ذلك، هناك useMemo. يُستخدم هذا الخطاف لحفظ العمليات الحسابية أو القيم باهظة الثمن داخل مكوناتك الوظيفية.
import { useMemo } from 'react'; function MyApp({ items }) { const expensiveCalculation = useMemo(() => { return items.reduce((total, item) => total item.value, 0); }, [items]); returnTotal Value: {expensiveCalculation}; }
هنا، يتم تشغيل الحساب مرة أخرى فقط عندما تتغير مصفوفة العناصر، مما يوفر الوقت عن طريق تجنب إعادة حساب نفس النتيجة في كل عرض.
التحميل البطيء هو أسلوب يتم فيه تحميل المكونات فقط عند الحاجة إليها ، بدلاً من تحميل كل شيء مقدمًا. يساعد هذا في تقليل وقت التحميل الأولي لتطبيقك، مما يجعله يبدو أسرع.
توفر React وظيفة مدمجة تسمى React.lazy() تسمح لك بتحميل المكونات حسب الطلب.
import React, { Suspense, lazy } from 'react'; const MyComponent = lazy(() => import('./MyComponent')); function App() { return (Loading...}> ); }
في هذا المثال، لن يتم تحميل MyComponent إلا عند الحاجة إليه بالفعل. يوفر مكون Suspense واجهة مستخدم احتياطية (مثل أداة التحميل الدوارة) أثناء جلب المكون، مما يجعل تجربة المستخدم أكثر سلاسة.
من الصعب تحسين شيء لا يمكنك قياسه. وهنا يأتي دور React Profiler. يسمح لك React Profiler بتتبع أداء مكوناتك، وتحديد عمليات العرض البطيئة، وقياس "تكلفة" عمليات إعادة العرض.
لاستخدام React Profiler، ما عليك سوى لف شجرة المكونات باستخدام
import { Profiler } from 'react'; function onRenderCallback( id, // the "id" prop of the Profiler tree that has just committed phase, // either "mount" (if the tree just mounted) or "update" (if it re-rendered) actualDuration, // time spent rendering the committed update baseDuration, // estimated time to render the entire subtree without memoization startTime, // when React began rendering this update commitTime, // when React committed this update interactions // the Set of interactions belonging to this update ) { console.log({ id, phase, actualDuration }); } function MyApp() { return (); }
باستخدام ملف التعريف، يمكنك تتبع المدة التي يستغرقها عرض كل مكون والعثور على المجالات التي يمكن تحسين الأداء فيها، مثل عمليات إعادة العرض غير الضرورية.
بعيدًا عن الحفظ والتحميل البطيء، هناك العديد من التقنيات الأخرى لتحسين أداء تطبيق React الخاص بك:
const OtherComponent = lazy(() => import('./OtherComponent'));
const handleClick = useCallback(() => { console.log('Clicked'); }, []);
const handleScroll = debounce(() => { console.log('Scroll event'); }, 300);
يتطلب إنشاء تطبيقات React سريعة وفعالة مجموعة من التقنيات. باستخدام التذكير مع React.memo وuseMemo، يمكنك منع عمليات إعادة العرض غير الضرورية. يسمح لك التحميل البطيء للمكونات باستخدام React.lazy بتحسين أوقات التحميل عن طريق جلب المكونات فقط عند الحاجة إليها. يساعدك React Profiler على تحديد اختناقات الأداء وتحسينها.
بالإضافة إلى إستراتيجيات مثل تقسيم التعليمات البرمجية وتحسين الأحداث، يمكنك التأكد من أن تطبيقات React الخاصة بك تقدم تجربة مستخدم سلسة وسريعة الاستجابة، حتى مع نمو حجمها وتعقيدها.
هل أنت على استعداد للارتقاء بأداء تطبيق React إلى المستوى التالي؟ جرّب تقنيات التحسين هذه في مشاريعك وشاهد سرعة تطبيقك تتحسن!
إذا استمتعت بهذا المقال، فكر في دعم عملي:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3