All streams
Search
Write a publication
Pull to refresh

Comments 5

Это не одно и тоже. Если дебоунс используется, что бы не спамить бэк, то useDefferedValue в базовом исполнении не поможет. Т.е. интерфейс будет вести себя как вы хотите, но на фоне будут проходить все запросы к серверу. А обычный дебоунс пропускает запросы только после delay

А вот это все проходило хоть какую-то проверку временем? Подвергалось пристальному рассмотрению перед публикацией?

Я это и про примеры и про решение.

Если идти сверху вниз.

Зачем вам в useDebounce нечто, что вы называете dependencies?

Ну, потому что useTimeount от этого не зависит, а зависит только от callback. А значит если, callback меняется, то все хуки срабатывают. И что это тогда за dependencies, если он не зависим от callback?

А самое забавное, что потом идет пример, который наглядно демонстрирует всю эту ситуацию.

Вы в свой хук отправляете литерал стрелочной функции. И поэтому вообще не имеет значения, что у вас там за массив [count] такой, потому, что литерал в зависимостях будут заставлять выполянться все хуки, куда он прокинут.

И второе, вы проверяли это работает? Потому что на вид, вы неверно сэмулировали useEffect. При выполнении эффекта сначала должна выполняться функции отмены предыдущего эффета, а потом уже функция нового эффекта. А у вас наоборот. При этом clear у вас общая для любого reset. А это значит, что вы устанавливаете новый ресет, и тут же clear его отменяет. Или я где-то упустил мысль?

дебаунсить нужно разные вещи. просто useDebounce не покрывает все случаи. у меня в проекте заведено 3 хука:

  • useDebouncedEffect

  • useDebouncedValue

  • useDebouncedFunction

Sign up to leave a comment.

Articles