استخدام useDeferredValue لتأخير إدخال المستخدم
أخّر إعادة تصيير الأجزاء البطيئة من الواجهة مع الحفاظ على سرعة استجابة الإدخال.
استخدام useDeferredValue لتأخير إدخال المستخدم درس مجاني في React Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.
مرحبًا
ما هو useDeferredValue؟
const [query, setQuery] = useState('');
const deferredQuery = useDeferredValue(query);
// query updates immediately on keystroke
// deferredQuery updates when React has capacityتطبيقه على المكونات المكلفة
function App() {
const [q, setQ] = useState('');
const dq = useDeferredValue(q);
return (
<>
<input value={q} onChange={e => setQ(e.target.value)} />
<HeavyList query={dq} /> {/* renders with deferred value */}
</>
);
}عرض مؤشر المحتوى القديم
const isStale = q !== dq;
<div style={{ opacity: isStale ? 0.5 : 1 }}>
<HeavyList query={dq} />
</div>useDeferredValue مقارنةً بـ debounce
useDeferredValue مقارنةً بـ useTransition
// You own the state: use useTransition
startTransition(() => setTab(newTab));
// You receive the value: use useDeferredValue
const deferredProp = useDeferredValue(props.searchQuery);الدمج مع React.memo
const HeavyList = React.memo(function({ query }) {
// expensive rendering
return <ul>{data.filter(q => ...).map(...)}</ul>;
});القيمة المؤجلة عند التصيير الأول
قيم مؤجلة متعددة
const deferredA = useDeferredValue(valueA);
const deferredB = useDeferredValue(valueB);القيود
تحقق سريع
مراجعة
التالي
الأسئلة الشائعة
هل درس «استخدام useDeferredValue لتأخير إدخال المستخدم» مجاني؟
نعم — نص درس «استخدام useDeferredValue لتأخير إدخال المستخدم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.
ماذا ستتعلم في «استخدام useDeferredValue لتأخير إدخال المستخدم»؟
أخّر إعادة تصيير الأجزاء البطيئة من الواجهة مع الحفاظ على سرعة استجابة الإدخال. تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟
لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «استخدام useDeferredValue لتأخير إدخال المستخدم»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟
نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- حالات التنافس وتنظيف Effect
- استخدام useTransition لتحديثات واجهة غير حاجبة
- استخدام useDeferredValue لتأخير إدخال المستخدم
- استخدام Suspense لحدود البيانات والتعليمات البرمجية