Cuireann an dá rud i gceangal rud éigin ar fud rindreachta ionas nach ríomhtar/athdhéantar é gach uair:
- cuireann i gceangal.
Cuireann an dá rud i gceangal rud éigin ar fud rindreachta ionas nach ríomhtar/athdhéantar é gach uair:
useMemouseCallback cuireann féiniúlacht fheidhme i gceangal (is ea useMemo(() => fn, deps) a bhíonn ann).Existann siad chun (a) obair dhruthaiseach a sheachaint agus (b) comhionannas tagartha a bhris ar na leanaí i gceangal a bhreostú.
function Table({ rows, onSelect }) {
// (a) expensive computation — recompute only when `rows` changes
const sorted = useMemo(() => rows.slice().sort(byName), [rows]);
// (b) stable function identity — so a React.memo child doesn't re-render,
// and effects depending on it don't re-fire
const handleSelect = useCallback(id => onSelect(id), [onSelect]);
return <Grid rows={sorted} onSelect={handleSelect} />;
}
Gan useCallback, is feidhm dhíreach nua a bhíonn i handleSelect gach rindreachta. Bhraistfeadh React.memo(Grid) gur prop "nua" a bhíonn ann agus dhéanfadh sé rindreachta ar aon nós, ag bualadh an gheallúnachais. An rud céanna do réad a roinntear le leanbh i gceangal nó a úsáidtear i spréachta useEffect.
const x = useMemo(() => a + b, [a, b]); // ❌ pointless — adding is cheaper than memoizing
useMemo/useCallback i ngach áit ag cur torann leis agus d'fhéadfadh sé a bheith níos moille fiú. (Is féidir le dreasóir React 19 feidhmeanna a gheallúnachas go huathoibríoch, ag laghdú an ghéarghá.)