usePrevious
مقدار رندر قبلی را برمیگرداند — برای تشخیص تغییر و مقایسه مقادیر
معرفی
هوک usePrevious مقدار یک متغیر را از رندر قبلی نگه میدارد. در اولین رندر undefined برمیگرداند و پس از آن همیشه مقدار رندر پیشین را.
چه زمانی استفاده کنیم
- تشخیص اینکه یک prop یا state بین دو رندر عوض شده (اجرای افکت فقط هنگام تغییر واقعی)
- مقایسهی مقدار جدید و قدیمی (مثلاً ثبت جابهجایی بین دو حالت)
- اجرای انیمیشن یا side-effect روی گذارِ یک مقدار
چه زمانی استفاده نکنیم
- برای نگهداری state معمولی — از
useStateاستفاده کنید - وقتی فقط به مقدار فعلی نیاز دارید
استفاده
import { usePrevious } from '@partodata/ui'
function Counter({ count }) {
const prevCount = usePrevious(count)
return (
<p>
مقدار فعلی: {count} — مقدار قبلی: {prevCount ?? '—'}
</p>
)
}پارامترها
| پارامتر | نوع | توضیح |
|---|---|---|
value | T | مقداری که میخواهید نسخهی رندر قبلش را داشته باشید |
مقدار بازگشتی
| نوع | توضیح |
|---|---|
T | undefined | مقدار رندر قبلی؛ در اولین رندر undefined است |
هوکهای مرتبط
- برای نسخهی با تأخیرِ یک مقدار → useDebounce