форма поиска и элементы (объекты). работает на редаксе, но, думаю, это не важно в этом случае
в контейнере есть обработчик для формы, состояние для инпутов и через connect() передаю элементы в компонент для элементов
----
вопрос: почему при изменении инпутов перерендеривается не только компонент формы, но и компонент с объектами? И правильная ли практика передавать пропсами в тупые компоненты от страницы (контейнера) вниз? На скрине сам контейнер в котором находятся состояние и все обработчики
Потому что меняются props/state этого компонента или родитель Нужно больше кода, так ничего не понятно
примерно так на рабочем примере выглядит, только array приходит из редакса https://codesandbox.io/s/determined-darkness-ljf2n?file=/src/App.js
это видно после включения в devtools Highlight updates when components render. Или это вообще норма, что так ререндерятся? можно ли это оптимизировать?
Ну да, все верно. Родитель когда обновляется, то вызывает рендер чайлдов. Если ты хочешь этого избежать- оберни items в memo, тогда он будет проверять пропы на изменение https://ru.reactjs.org/docs/react-api.html#reactmemo
да, спасибо, уже читаю про memo. а это нормальная практика, когда большая часть всех компонентов будет обернута в memo?
Без надобности оборачивать не надо Количество рендеров просто так оптимизировать не надо
Он тоже не полностью поможет
От проекта сильно зависит. Это все же дополнительные проверки. Поэтому может на производительность влиять как в лучшую так и в худшую сторону
Обсуждают сегодня