شرح صفوف ومحتوى الفقرة
تماماً كما يحدث مع الكائنات المضمنة، فإن تعريف دالة حدث داخل المكون الأب ينشئ مرجع دالة جديداً في كل تصيير؛ فإذا مررت هذه الدالة لمكون فرعي مغلف بـ memo() ستفشل مقارنة المراجع ويعاد رسم الابن في كل مرة.
لتثبيت مرجع الدالة نستخدم خطاف useCallback(fn, dependencies). تذكر القاعدة الفاصلة ببساطة: يخزن useMemo ناتج استدعاء الدالة، بينما يخزن useCallback تعريف الدالة نفسها لتُستدعى لاحقاً عند وقوع الحدث:
HTML
import { memo, useCallback, useState } from 'react';
const handleSelect = useCallback((trackId) => {
setSelectedId(trackId);
}, []);
// Safe to pass to memoized child:
// <TrackList onSelect={handleSelect} />