بعد از این درس چه کاری میتوانی انجام بدهی؟
- useMemo نتیجه محاسبه را بین renderهای وابسته نگه میدارد؛ برای کد عادی و ارزان لازم نیست.
- نمونه را اجرا کنی و نتیجه را پیش از تغییر حدس بزنی
- یک تغییر کوچک بدهی و اثرش را در مرورگر توضیح بدهی
- خطای این درس را با DevTools یا اعتبارسنج پیدا و اصلاح کنی
اگر نتیجه عجیب بود، اول همان عنصر را در DevTools انتخاب کن؛ ساختار و قانونهای واقعاً اعمالشده از حدسزدن سریعتر راه را نشان میدهند.
چرا مهم است؟ useMemo نتیجه محاسبه را بین renderهای وابسته نگه میدارد؛ برای کد عادی و ارزان لازم نیست.
اولین تمرین تو: بدون useMemo و با Profiler هزینه را مقایسه کن. پیش از تازهکردن صفحه، نتیجه را در یک جمله حدس بزن و بعد حدست را با مرورگر مقایسه کن.
از یک مثال کوچک شروع کن
useMemo نتیجه محاسبه را بین renderهای وابسته نگه میدارد؛ برای کد عادی و ارزان لازم نیست. نمونه کوتاه زیر را در فایل «src/HabitList.jsx» بنویس و صفحه را تازه کن. بعد از دیدن نتیجه، سراغ تغییر پیشنهادی برو؛ هدف حفظکردن نشانهها نیست، باید بفهمی کدام خط چه اثری روی صفحه گذاشت.
۱. نمونه را خودت تایپ کن
فایل را ذخیره کن و نتیجه را با انتظار این درس مقایسه کن.
۲. تغییر درس را انجام بده
بدون useMemo و با Profiler هزینه را مقایسه کن.
۳. خطا را عمداً ببین
وابستگی ناقص در useMemo نتیجه قدیمی نگه میدارد و memo بیدلیل کد را پیچیده میکند. سپس DevTools یا HTML Validator را باز کن و فقط همان علت را اصلاح کن.
اگر نتیجه عجیب بود، اول همان عنصر را در DevTools انتخاب کن؛ ساختار و قانونهای واقعاً اعمالشده از حدسزدن سریعتر راه را نشان میدهند.
سه قطعهای که باید بفهمی
Memoization؛ فقط پس از اندازهگیری
useMemo نتیجه محاسبه را بین renderهای وابسته نگه میدارد؛ برای کد عادی و ارزان لازم نیست.
نتیجه قابل مشاهده
فهرست فقط با تغییر habits یا query دوباره فیلتر میشود.
نشانه خطا
وابستگی ناقص در useMemo نتیجه قدیمی نگه میدارد و memo بیدلیل کد را پیچیده میکند.
فیلتر فهرست بسیار بزرگ در هر render کند است و Profiler همان محاسبه را نشان میدهد.
فرض کن فیلتر فهرست بسیار بزرگ در هر render کند است و Profiler همان محاسبه را نشان میدهد. صفحه باز میشود، اما هنوز این بخش برای کاربر درست و قابل فهم نیست. در این درس فقط همان قسمت را میسازیم تا رابطه کد و نتیجه گم نشود.
قطعهها را به ترتیب درست بچین
روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمههای جابهجایی هم میتوانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.
بررسی ساختار تمرین
این صفحه کامپایلر کامل React نیست؛ ساختار تمرین را صادقانه بررسی میکند و خروجی مورد انتظار را نشان میدهد. برای اجرای کامل به محیط رسمی همان زبان نیاز است.
یک بخش را تغییر بده و دکمه بررسی را بزن.
راهنماییها مرحلهای هستند؛ اول خودت پیام خطا را بخوان.
بدون useMemo و با Profiler هزینه را مقایسه کن. پیش از تازهکردن صفحه، نتیجه را در یک جمله حدس بزن و بعد حدست را با مرورگر مقایسه کن.
این سه اشتباه را انجام نده
وابستگی ناقص در useMemo نتیجه قدیمی نگه میدارد و memo بیدلیل کد را پیچیده میکند.
تغییر چند بخش همزمان و نامشخصشدن علت نتیجه
اعتماد به ظاهر یک اندازه صفحه و بررسینکردن موبایل یا صفحهکلید
با 5 سؤال مطمئن شو که مفهوم را گرفتهای
در این درس چه چیزی باید در مرورگر دیده شود؟
چرا فقط یک بخش را تغییر میدهیم؟
اولین سرنخ خطای این درس چیست؟
بعد از تغییر کد چه کاری مفید است؟
چه زمانی آماده درس بعدی هستی؟
فهمیدی، تغییر دادی، نتیجه را توضیح دادی؟
فقط در این صورت درس را کامل کن و سراغ مرحله بعد برو.