Size: a a a

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

2020 October 04

DK

Daniel Karuna in React — русскоговорящее сообщество
ステパンヤノ 。
redux с хуками работает хуже обычного редакса
Разве это ещё актуально? Вроде только первые версии на хуках тормозили, а потом они пофиксили
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
Vetro
Пруфы?
connect делает рендер оптимизацию, в слачае с хуками надо вручную все завернуть в всякие там react.memo
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
про action creators и тесты молчу
источник

E

Evgenii in React — русскоговорящее сообщество
Vetro
Пруфы?
+
источник

DK

Daniel Karuna in React — русскоговорящее сообщество
Ты про лишние ререндеры? Это вроде как не считается проблемой, значение-то одинаковое остаётся если определенный слайс стейта не меняется
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
Daniel Karuna
Ты про лишние ререндеры? Это вроде как не считается проблемой, значение-то одинаковое остаётся если определенный слайс стейта не меняется
верно. я не об этом. а что если родитель решил ререндерить ?  вот с хуками чайлд тоже сделает ререндер, даже если слайс стейта тот же. с coonect() -ом этого не будет.
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
источник

DK

Daniel Karuna in React — русскоговорящее сообщество
Если родитель подключён коннектом? Так то же самое поведение что если бы и в родителе был хук написан
источник

E

Evgenii in React — русскоговорящее сообщество
по умолч ссылочное сравнение, но вторым параметром можно передать  shallowEquality и будет все тоже самое, там как бы дальше об этом.
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
Evgenii
по умолч ссылочное сравнение, но вторым параметром можно передать  shallowEquality и будет все тоже самое, там как бы дальше об этом.
нет, вы о другом. shallowEquality это он имеет ввиду о слайсе стейта. то есть по дефолту если диспачить action,  внутри useSelector он проверят по ссылке. если там обьект, то всегда будет ре рендер, потому что каждый раз ссылка будет новая. если там цыфра и она не меняется то ре рендеров не будет. вот shallowEquality именно меняет это поведение, то есть вместо ссылки можно проверять значения, чтоб обьекты не ре рендерилсиь всегда.
но если родитель решил ре рендерить, то shallowEquality тут никак не поможет. редакс чайлд с хуками будет ре рендериться тоже. короч время будет продемонстрирую в codepen
источник

Д

Давид in React — русскоговорящее сообщество
ステパンヤノ 。
нет, вы о другом. shallowEquality это он имеет ввиду о слайсе стейта. то есть по дефолту если диспачить action,  внутри useSelector он проверят по ссылке. если там обьект, то всегда будет ре рендер, потому что каждый раз ссылка будет новая. если там цыфра и она не меняется то ре рендеров не будет. вот shallowEquality именно меняет это поведение, то есть вместо ссылки можно проверять значения, чтоб обьекты не ре рендерилсиь всегда.
но если родитель решил ре рендерить, то shallowEquality тут никак не поможет. редакс чайлд с хуками будет ре рендериться тоже. короч время будет продемонстрирую в codepen
👍
источник

И

Иван in React — русскоговорящее сообщество
Давид
и еще тем более он весь на typeScript, то здесь паливно вообще трогать и переписывать
Тс ведь для того и нужен, чтобы менять было не стрёмно
источник

И

Иван in React — русскоговорящее сообщество
ステパンヤノ 。
нет, вы о другом. shallowEquality это он имеет ввиду о слайсе стейта. то есть по дефолту если диспачить action,  внутри useSelector он проверят по ссылке. если там обьект, то всегда будет ре рендер, потому что каждый раз ссылка будет новая. если там цыфра и она не меняется то ре рендеров не будет. вот shallowEquality именно меняет это поведение, то есть вместо ссылки можно проверять значения, чтоб обьекты не ре рендерилсиь всегда.
но если родитель решил ре рендерить, то shallowEquality тут никак не поможет. редакс чайлд с хуками будет ре рендериться тоже. короч время будет продемонстрирую в codepen
Оптимизации рендеринга там, где они не нужны, наоборот замедляют работу приложения

Везде нужно голову включать, без этого сложновато
источник

Д

Давид in React — русскоговорящее сообщество
Иван
Тс ведь для того и нужен, чтобы менять было не стрёмно
так в том то и дело что мне не нужно менять ) а дописать
источник

И

Иван in React — русскоговорящее сообщество
Давид
так в том то и дело что мне не нужно менять ) а дописать
Я мимокрокодил
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
Иван
Оптимизации рендеринга там, где они не нужны, наоборот замедляют работу приложения

Везде нужно голову включать, без этого сложновато
ну я вообще не об этом. я просто сказал, что старый редакс и редакс с хукаим это не одно и тоже. там многое допилить надо
источник

E

Evgenii in React — русскоговорящее сообщество
ステパンヤノ 。
нет, вы о другом. shallowEquality это он имеет ввиду о слайсе стейта. то есть по дефолту если диспачить action,  внутри useSelector он проверят по ссылке. если там обьект, то всегда будет ре рендер, потому что каждый раз ссылка будет новая. если там цыфра и она не меняется то ре рендеров не будет. вот shallowEquality именно меняет это поведение, то есть вместо ссылки можно проверять значения, чтоб обьекты не ре рендерилсиь всегда.
но если родитель решил ре рендерить, то shallowEquality тут никак не поможет. редакс чайлд с хуками будет ре рендериться тоже. короч время будет продемонстрирую в codepen
получается компонент с коннектом ведет себя как  PureComponent ?
источник

И

Иван in React — русскоговорящее сообщество
ステパンヤノ 。
ну я вообще не об этом. я просто сказал, что старый редакс и редакс с хукаим это не одно и тоже. там многое допилить надо
Ну да, не одно и то же. Нигде никто не заявлял, что эти два решения полностью эквивалентны. Какое-то удобнее тут, какое-то удобнее там. В любом случае нужно думать головой. С хуками код пишется и читается поприятнее, но это накладывает свои условия. Как и любое изменение чего угодно — нужно понимать, в чём различия
источник

E

Evgenii in React — русскоговорящее сообщество
Evgenii
получается компонент с коннектом ведет себя как  PureComponent ?
если это проблема есть же react.memo
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
“код пишется и читается поприятнее”. ну тут тоже можно спорить. доки редакса рекомендуют не юзать обьект в селекторе, а конкретно значение, так что, если компоненту надо 10 пропов от стейта, то это уже 10 строк однообразного кода. еще там прямо вызвать dispatch, что, конечно, хуже, чем конкретно вызвать метод action-а
на счет react.memo я именно так и сказал. но если все это делать, то зачем тогда юзать хуки.
в общем ладно, я ток начинаю и вас понял тоже.  спасибо за интересные мысли
источник