Pull to refresh

Comments 2

У нас ещё есть "безусловный" аналог useCallback

import {useCallback, useInsertionEffect, useRef} from 'react';

export function useEvent<T extends (...args: never[]) => unknown>(func: T): T {
    const refCallee = useRef(func);

    useInsertionEffect(() => {
        refCallee.current = func;
    });

    return useCallback((...args: never[]) => refCallee.current(...args), []) as T;
}

Подходит для всех кейсов, кроме вызова на этапе рендера или в useInsertionEffect в каком-нибудь чилде. Любые колбэки, обработчики событий, (layout)эффекты и т.д.

Тема разобрана здесь

Просто скажу, что работал на больших проектах, где оборачивали все вообще, и не оборачивали почти ничего. Вы разницы не увидите, если, как сказано выше, у вас проект просто кликнуть и что то вычислить. Реакт сам прекрасно знает что нужно перерисовать, а что нет. А то, что функция лишний раз вызовется, ничего страшного.

Sign up to leave a comment.