Бро я дальше useCallback и useMemo перестал понимать. Точнее, думаю можно же ведь обойтись без всего следующего. Или у меня уровень еще не тот, и не сталкивался с такими проблемами. А так awesome.
Печально, мои комментарии почему-то банит и удаляет ютуб, возможно из-за ссылок, придется как-то без них обойтись ( Подскажите пожалуйста, в видео вы передаете const debouncedFn = useMemo( useMemo( () => debounceFn((...args) => { latestCb.current(...args); }, ms --> параметры lodash), [ms - параметры lodash, latestCb] ); В вашем блоге, описан пример с TS, на github правильно) return useMemo( () => debounce((...args: Paramters) => { unstable_batchedUpdates(() => { latestCb.current(...args); }); }, --> тут не хватает параметров lodash), [latestCb, ...rest] );
Понравилось, что в хуке можно передавать параметры и функция не вызывается сразу Как например, react-use: useTimeoutFn (типо useDebounce или useDebounceFn) Так наверное сделано из-за того, что функция вызывается сразу в useEffect -> set() - который ничего не знает про параметры У них, useDebounce(типо useDebounceEffect) Заметил, что многие библиотеки предоставляющие useDebounce, используют lodash. Например: alibaba/hooks Возможно, в одном из следующих уроков, вы рассмотрите реализацию собственного debounce подобной с lodash)
По поводу других реализаций - согласен, тоже мне сильно не понравились. А касательно debounce из lodash - это просто проще всего. Но если ты посмотришь на хук, который я делал для библиотеки tiny-use-debounce, там можно создать хук со своей реализацией. Просто сложно удовлетворить разные детали debounce’а, поэтому все берут lodash - самый навороченный и популярный как дефолт. А кастомную реализацию думаю не имеет смысла снимать - такого уже очень много, вряд ли я что-то добавить смогу)
Вот бы таких учебных материалов побольше было бы. Спасибо большое за информации. Удачи вам!
Постараюсь чаще выкладывать, спасибо за фидбэк!
Отличное видео ! Продолжайте в том же духе !
Спасибо!
Спасибо ! Видео помогло ! Удачи вам!
Рад был помочь!
Дай бог тебе здоровья, бро!) Просто спас!)
Рад, что было полезно) спасибо!
Наконец-то понятное объяснение, огонь!
Спасибо, рад помочь!
Замечательно всегда удачи вам!
Спасибо большое!
Супер!
Спасибо!
Бро я дальше useCallback и useMemo перестал понимать. Точнее, думаю можно же ведь обойтись без всего следующего. Или у меня уровень еще не тот, и не сталкивался с такими проблемами. А так awesome.
Сложная тема!
Тут кажется самая сложная часть - это useLatest в связке с useMemo. Остальное легко должно быть понять.
жаль TS нету
В планах есть переснять эти видосы. Так что все будет!
Печально, мои комментарии почему-то банит и удаляет ютуб, возможно из-за ссылок, придется как-то без них обойтись (
Подскажите пожалуйста, в видео вы передаете const debouncedFn = useMemo(
useMemo(
() =>
debounceFn((...args) => {
latestCb.current(...args);
}, ms --> параметры lodash),
[ms - параметры lodash, latestCb]
);
В вашем блоге, описан пример с TS, на github правильно)
return useMemo(
() =>
debounce((...args: Paramters) => {
unstable_batchedUpdates(() => {
latestCb.current(...args);
});
}, --> тут не хватает параметров lodash),
[latestCb, ...rest]
);
Понравилось, что в хуке можно передавать параметры и функция не вызывается сразу
Как например, react-use:
useTimeoutFn (типо useDebounce или useDebounceFn)
Так наверное сделано из-за того, что функция вызывается сразу в useEffect -> set() - который ничего не знает про параметры
У них, useDebounce(типо useDebounceEffect)
Заметил, что многие библиотеки предоставляющие useDebounce, используют lodash.
Например: alibaba/hooks
Возможно, в одном из следующих уроков, вы рассмотрите реализацию собственного debounce подобной с lodash)
По поводу других реализаций - согласен, тоже мне сильно не понравились.
А касательно debounce из lodash - это просто проще всего.
Но если ты посмотришь на хук, который я делал для библиотеки tiny-use-debounce, там можно создать хук со своей реализацией.
Просто сложно удовлетворить разные детали debounce’а, поэтому все берут lodash - самый навороченный и популярный как дефолт.
А кастомную реализацию думаю не имеет смысла снимать - такого уже очень много, вряд ли я что-то добавить смогу)