پرتوپرتو

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>
  )
}

پارامترها

پارامترنوعتوضیح
valueTمقداری که می‌خواهید نسخه‌ی رندر قبلش را داشته باشید

مقدار بازگشتی

نوعتوضیح
T | undefinedمقدار رندر قبلی؛ در اولین رندر undefined است

هوک‌های مرتبط

  • برای نسخه‌ی با تأخیرِ یک مقدار → useDebounce