С Map не очень понятно пример использования кажется не очень корректный, что если именно обновить значение в Маре те на каждое действие по этому ключу менять тру/фолс сайз от этого не изменится, следовательно ререндера не произойдет Смущает конечно тот факт что за два года никто не прокомментировал это мейби я не прав сначала хотел еще написать что кажется использование такого хука не очень хорошей практикой кажется, потому что ссылка на Маp всегда будет одна и та же и может возникнуть ошибка там где будут следить за изменениями этого Map, но потом увидел что это только для перебора данных, и обращаться к мапе мы тут не можем (например взять значение по ключу)
Привет! Слушай, я наверное не так понял, но все равно хотел уточнить: ты говорил, что использование forEach не слишком эффективно на сэтах, но в кастомном мапе как раз он и используется. Повлияет ли это на производительность?
Привет. Да, forEach не настолько эффективен, как forEach на массиве, но в целом сложность O(n). Я скорее говорил о том, что если мы будем генерить новый сет каждый раз + еще вызывать forEach для показа каждого из элементов - то смысла от использования сета не будет. В данном случае проблем с производительностью быть не должно. Ну и в целом, это один из подходов, нужно понимать, что у всего есть свои плюсы и минусы.
Вся эта обёртка нужна только для того, чтобы добавить метод map? Вручную прописывать все методы как-то не очень) проще тогда отдельно его создать или на худой случай в прототип добавить конкретному возвращаемому сету/мапу
Если удобнее, можно сделать отдельные утилиты. Можешь еще раз пересмотреть видео, обертка нужна для того, чтобы эффективнее работать с мапом/сетом и не пересоздавать их при каждом обновлении.
Годный контент, красавчик!Планирую в бушующем на реакт переходить, буду пересматривать твои ролики,продолжай в том же духе
Спасибо за фидбэк!
А сейчас на чем пишешь?)
@@ayub_begimkulov лучше тебе не знать, древняя технология )
Просто красавчик, лайк без вариантов!
Но есть вопрос: метод set в хуке useMap не запустит ре-рендер компонента так как размер (число) остался прежним?
Очень крутое видео.Молодец
Спасибо!
С Map не очень понятно
пример использования кажется не очень корректный, что если именно обновить значение в Маре
те на каждое действие по этому ключу менять тру/фолс
сайз от этого не изменится, следовательно ререндера не произойдет
Смущает конечно тот факт что за два года никто не прокомментировал это мейби я не прав
сначала хотел еще написать что кажется использование такого хука не очень хорошей практикой кажется,
потому что ссылка на Маp всегда будет одна и та же и может возникнуть ошибка там где будут следить за изменениями этого Map,
но потом увидел что это только для перебора данных, и обращаться к мапе мы тут не можем (например взять значение по ключу)
Привет, ты в методе add возвращаешь обычный сет, а не ту обёртку который твой хук делает
Да, хорошое замечание, не подумал об этом.
9:21 вопрос, а почему useState, а не useRef?
потому что нельзя передать колбэк в него и будет много дублей в памяти на каждый ререндер. Лучше тогда useMemo
Привет!
Слушай, я наверное не так понял, но все равно хотел уточнить: ты говорил, что использование forEach не слишком эффективно на сэтах, но в кастомном мапе как раз он и используется. Повлияет ли это на производительность?
Привет.
Да, forEach не настолько эффективен, как forEach на массиве, но в целом сложность O(n).
Я скорее говорил о том, что если мы будем генерить новый сет каждый раз + еще вызывать forEach для показа каждого из элементов - то смысла от использования сета не будет.
В данном случае проблем с производительностью быть не должно.
Ну и в целом, это один из подходов, нужно понимать, что у всего есть свои плюсы и минусы.
Вся эта обёртка нужна только для того, чтобы добавить метод map? Вручную прописывать все методы как-то не очень) проще тогда отдельно его создать или на худой случай в прототип добавить конкретному возвращаемому сету/мапу
Если удобнее, можно сделать отдельные утилиты.
Можешь еще раз пересмотреть видео, обертка нужна для того, чтобы эффективнее работать с мапом/сетом и не пересоздавать их при каждом обновлении.
@@ayub_begimkulov можно положить мап в реф и он не будет обновляться каждый ререндер
@@imperror555 а как тогда оповестить компонент, что мапа изменилась и нужно запустить рендер компонента?
Блин, подготовился бы к записи видео. В целом полезно, но смотреть и слушать.... Просто ужас
Это старое видео. Сейчас таких проблем нету.
@@ayub_begimkulov ну я попал именно на это ) Посмотрю другие, если будет что интересное. Спасибо за ответ!