@lexstile

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

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

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

Если использовать reselect в связке с хуками от react-redux (useSelector, useDispatch), можно ли полностью заменить подход с connect (mapStateToProps && mapDispatchToProps) и рассчитывать на аналогичную производительность?
  • Вопрос задан
  • 310 просмотров
Решения вопроса 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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час