@lexstile

React-redux: хуки или классический подход через connect — плюсы и минусы?

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

Хотелось бы получить ответ, если мы пишем приложение без классовых компонентов.
Пишут, что connect более производительная штука, а useSelector чаще будет рендирить, так ли это?

Если использовать reselect в связке с хуками от react-redux (useSelector, useDispatch), можно ли полностью заменить подход с connect (mapStateToProps && mapDispatchToProps) и рассчитывать на аналогичную производительность?
  • Вопрос задан
  • 288 просмотров
Решения вопроса 1
miraage
@miraage
Старый прогер
Пишут, что connect более производительная штука, а useSelector чаще будет рендирить, так ли это?

Кто это сказал и чем подкрепил эти факты? По мне, звучит как вода.

reselect нужно использовать независимо от того, используются хуки или connect, но только в случаях, когда селектор должен вернуть какие-то computed данные.

Если посмотреть реализацию.

connect везёт вагон кода: mapStateToProps (который имеет несколько вариаций, в зависимости от того, испольуются ownProps или нет), mapDispatchToProps (который создаёт новые функции), mergeProps (надо проверить, передали её или нет), ещё и options поверх этого всего. Возвращает компонент, который делает equalty checks и может что-то ещё. То есть, connect поверх всего вагона кода, дает нам компонент сверху, который везёт в себе логику.

хуки же: useSelector тупо подписывается на store и делает только equality checks, useDispatch вынимает dispatch функцию через Context API и не создаёт никаких новых функций, мы просто испольуем уже готовые actionCreator.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект