@toly19

Как в REACT-REDUX сделать, чтобы перерендеривался только один элемент?

Есть родительский элемент App. Он через connect подписан на изменение всего стора.
Есть элемент Todo. Он также подписан на изменение всего стора.
Элементов Todo может быть несколько.
Когда один из Todo выстреливает событие, то это приводит к перерендеру App и вложенных Todo (всех).
Как сделать, чтобы при диспатче события обновлялся только тот Todo, который его отправил?

Весь код на codepen
P.S. смотри консоль
  • Вопрос задан
  • 646 просмотров
Решения вопроса 1
Гляньте вот этот ответ React-Redux. Какой путь правильнее: вызов connect ...

Если кратко:
  • Избавьтесь от коннектов, которые слушают большие куски стейта
  • Используйте reselect, для вычислений стейта (например, когда собираете элемент из разных редьюсеров)
  • Используйте connect элементах, которым нужны данные. Их может быть много. Список из 1000 connected-elements работает быстрее, чем список из 1000 элементов с 1м connected-element. Потому что даже PureComponent имеет свой оверхед и если дочерний компонент не обновился - это не значит, что diff алгоритм реакта не будет обрабатывать изменения в родительском компоненте
Ответ написан
Ответы на вопрос 1
mlnkv
@mlnkv
JavaScript Developer
Когда вызывается метод render это не значит, что приложение перерендерится. Метод render возвращает Virtual DOM. Механизм ReactJS берет возвращаемый объект Virtual DOM, сравнивает с предыдущим и точечно вносит изменения, если они есть.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы