8:58 Ну конкретно тут было бы проще вынести функцию из FC на top level модуля. Я понимаю, что пример учебный и в 98% процентов случаев без useMemo никак, но кто-то должен в комментариях надушнить, что нет завязки на переменные, которые есть в lexical scope of FC. Поэтому буду я :)
очень, приочень полезные видео. У нас как раз стояла на проекте проблема, наподобие с textArea, решение нашли, но не такое изящное как у тебя. Спасибо!
@@ayub_begimkulov function useDebounce(value, delay) { // State and setters for debounced value const [debouncedValue, setDebouncedValue] = useState(value); useEffect( () => { // Update debounced value after delay const handler = setTimeout(() => { setDebouncedValue(value); }, delay); // Cancel the timeout if value changes (also on delay change or unmount) // This is how we prevent debounced value from updating if value is changed ... // .. within the delay period. Timeout gets cleared and restarted. return () => { clearTimeout(handler); }; }, [value, delay] // Only re-call effect if value or delay changes ); return debouncedValue; }