Size: a a a

React — русскоговорящее сообщество

2021 February 20

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Max Zinchenko
ребят, доброе утро, как лучше реализовать селектор, который обновляется 100+ раз в секунду (лайв стриминг цен)

я так понимаю, держать его (такой селектор) в главном контейнере не очень хорошо...

компоненты не ререндрятся, они в memo()

console.log() стоит в контейнере и срабатывает из-за того что я слушаю селектор цен

const prices = useStelector(state => state.prices)
По прежнему надеюсь что ты не будешь дергать рендер 100 раз в секунду, это все таки интерфейс и пользователь это не увидит.

Если у тебя проблема в лишних ререндерах то у useSelector есть второй параметр в котором можно передать функцию которая будет сравнивать предыдущее и новое состояние и пропускать ререндеры
источник

MZ

Max Zinchenko in React — русскоговорящее сообщество
Понял, спасибо
источник

ЕЛ

Евгений Леденёв... in React — русскоговорящее сообщество
Max Zinchenko
ребят, доброе утро, как лучше реализовать селектор, который обновляется 100+ раз в секунду (лайв стриминг цен)

я так понимаю, держать его (такой селектор) в главном контейнере не очень хорошо...

компоненты не ререндрятся, они в memo()

console.log() стоит в контейнере и срабатывает из-за того что я слушаю селектор цен

const prices = useStelector(state => state.prices)
Я бы пошел по пути записи этих данных в хранилище не чаще чем раз в несколько секунд.
источник

ВД

Вадим Дунькин... in React — русскоговорящее сообщество
Всем привет, задача такая, при изменении поля в форме - отправлять эту форму на сервер, запрос делается, но встала такая проблема нужно добавить settimeout на onChange поля, это сделаю, но как в таком случае отменить fetch ?
источник

D

Dmitry in React — русскоговорящее сообщество
Вадим Дунькин
Всем привет, задача такая, при изменении поля в форме - отправлять эту форму на сервер, запрос делается, но встала такая проблема нужно добавить settimeout на onChange поля, это сделаю, но как в таком случае отменить fetch ?
А зачем таймауты на onChange?
источник

D

Dmitry in React — русскоговорящее сообщество
Если я верно понял, то можно просто всю форму дизейблить пока запрос выполняется
источник

DA

Dmitry A. in React — русскоговорящее сообщество
Вадим Дунькин
Всем привет, задача такая, при изменении поля в форме - отправлять эту форму на сервер, запрос делается, но встала такая проблема нужно добавить settimeout на onChange поля, это сделаю, но как в таком случае отменить fetch ?
источник

SK

Sergei Kustikov in React — русскоговорящее сообщество
Вадим Дунькин
Всем привет, задача такая, при изменении поля в форме - отправлять эту форму на сервер, запрос делается, но встала такая проблема нужно добавить settimeout на onChange поля, это сделаю, но как в таком случае отменить fetch ?
источник

Р

Руслан in React — русскоговорящее сообщество
Вадим Дунькин
Всем привет, задача такая, при изменении поля в форме - отправлять эту форму на сервер, запрос делается, но встала такая проблема нужно добавить settimeout на onChange поля, это сделаю, но как в таком случае отменить fetch ?
источник

A

Al in React — русскоговорящее сообщество
Всем привет а есть какая утилита которая проверяет установленные библеотеки на уязвимости?
источник

DM

Denis Morozkin in React — русскоговорящее сообщество
Вадим Дунькин
Всем привет, задача такая, при изменении поля в форме - отправлять эту форму на сервер, запрос делается, но встала такая проблема нужно добавить settimeout на onChange поля, это сделаю, но как в таком случае отменить fetch ?
можно через clearTimeout удалять timer у setTimeout, запрос это не отменит, если он произошел, но запросы будут слаться если timer прошел
источник

МК

Миша Ковальчук... in React — русскоговорящее сообщество
Sergey
Оберни в React.memo это должно решить проблему, т.к хоть компонент и один но экземпляров этого компонента много, в каждый приходит своя часть данных, и перерендерятся только компоненты вдоль изменившейся ветки
Пробовал.. по идее это ж не должно срабатывать, поскольку раз это рекурсия, то что бы программа дошла до какого-то из дочерних экземпляров, верхние экземпляры должны перерисоваться, а если у верхних пропсы не изменятся, то и рекурсия дальше не пойдет и не дойдет до нужных экземпляров, у которых изменились пропсы..
Я это так понимаю
источник

MZ

Max Zinchenko in React — русскоговорящее сообщество
Евгений Леденёв
Я бы пошел по пути записи этих данных в хранилище не чаще чем раз в несколько секунд.
понял. спасибо
источник

S

Sergey in React — русскоговорящее сообщество
Миша Ковальчук
Пробовал.. по идее это ж не должно срабатывать, поскольку раз это рекурсия, то что бы программа дошла до какого-то из дочерних экземпляров, верхние экземпляры должны перерисоваться, а если у верхних пропсы не изменятся, то и рекурсия дальше не пойдет и не дойдет до нужных экземпляров, у которых изменились пропсы..
Я это так понимаю
Пропсы нужно менять вдоль ветки на листьях которой поиенялось
источник

BA

Bauka Alimgazy in React — русскоговорящее сообщество
Max Zinchenko
ребят, доброе утро, как лучше реализовать селектор, который обновляется 100+ раз в секунду (лайв стриминг цен)

я так понимаю, держать его (такой селектор) в главном контейнере не очень хорошо...

компоненты не ререндрятся, они в memo()

console.log() стоит в контейнере и срабатывает из-за того что я слушаю селектор цен

const prices = useStelector(state => state.prices)
100+ раз в секунду? Это ещё и 100+ Гц монитор должен быть
источник

MZ

Max Zinchenko in React — русскоговорящее сообщество
Ну там запись экрана прикрепил
источник

S

Sergey in React — русскоговорящее сообщество
Миша Ковальчук
Пробовал.. по идее это ж не должно срабатывать, поскольку раз это рекурсия, то что бы программа дошла до какого-то из дочерних экземпляров, верхние экземпляры должны перерисоваться, а если у верхних пропсы не изменятся, то и рекурсия дальше не пойдет и не дойдет до нужных экземпляров, у которых изменились пропсы..
Я это так понимаю
Вообще тут нужен стейт менеджер (redux, mobx и т.д.) тогда можно будет точечно рендерить только изменившийся элемент
источник

МК

Миша Ковальчук... in React — русскоговорящее сообщество
Sergey
Вообще тут нужен стейт менеджер (redux, mobx и т.д.) тогда можно будет точечно рендерить только изменившийся элемент
там выше предложили использовать локальный стейт, я еще не думал подробно над этой идеей, но возможно поможет
источник

S

Sergey in React — русскоговорящее сообщество
Миша Ковальчук
там выше предложили использовать локальный стейт, я еще не думал подробно над этой идеей, но возможно поможет
Если этот стейт за пределами компонента не нужен, то локальный стейт это хорошее решение
источник

MZ

Max Zinchenko in React — русскоговорящее сообщество
Bauka Alimgazy
100+ раз в секунду? Это ещё и 100+ Гц монитор должен быть
т.е. оптимальное решение это пару раз в секунду менять стор?
источник