...

/

الاختيار بين useTransition وuseDeferredValue

الاختيار بين useTransition وuseDeferredValue

تعلّم متى تستخدم useTransition ومتى تستخدم useDeferredValue من خلال فهم كيفية إدارة كلٍّ منهما للتزامن والأداء في React. كما تعلّم كيفية عملهما معًا في واجهات معقدة.

سنغطي ما يلي...

يمنحنا React أداتين:useTransition وuseDeferredValue نموذج معًا العمود الفقري لنموذج التزامن في React، مما يحافظ على قوة واجهات المستخدم وسلاسة الأداء حتى عندما يكون التطبيق مشغولًا بالعرض. يبدو أن كلاهما يحل نفس المشكلة:

"الحفاظ على واجهة مستجيبة."

فهم الفرق مفتاح

على الرغم من أن كلا الخطافين يهدفان إلى تحسين الاستجابة في تطبيقات React ، إلا أنهما يفعلان ذلك بطرق مختلفة.

الجدول أدناه يقارنuseTransition وuseDeferredValue عبر أبعاد مختلفة لمساعدتنا في تحديد أي منها يناسب سيناريو معين.

Comparison Angle

useTransition

useDefferredValue

What it defers

A state update function

A changing value

Primary purpose

To delay expensive updates that are triggered by user actions (e.g., filtering, navigation)

To delay re-renders caused by rapidly changing inputs or props

Typical use case

When an action (like typing or clicking) triggers a heavy computation or re-render

When the app re-renders too frequently due to fast-changing input data

API signature

[isPending, startTransition] = useTransition()

const deferredValue = useDeferredValue(value)

Feedback mechanism

isPending flag — lets you show a loading state during the transition

Compare value !== deferredValue to show that deferred updates are in progress

When it’s triggered

You manually wrap a state update function inside startTransition()

React automatically manages timing when the deferred value changes

Analogy

Delay when the update happens.

Delay what data the update uses.

...