Задать вопрос
@lexstile

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

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

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

Если использовать reselect в связке с хуками от react-redux (useSelector, useDispatch), можно ли полностью заменить подход с connect (mapStateToProps && mapDispatchToProps) и рассчитывать на аналогичную производительность?
  • Вопрос задан
  • 328 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • ProductStar
    Разработка на React
    6 недель
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
Решения вопроса 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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 250 000 до 300 000 ₽
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽