Каковы различия между Redux-Thunk и Redux-Promise при использовании с Axios apis?

11

Я использую React, Redux с нескольких месяцев. Одной из наиболее запутанной части экосистемы является поток асинхронных данных. Есть много отличных решений, и выбор правильного решения для вашей проблемы - непростая.

В моем приложении у создателей действия в основном есть async axios [ajax] вызовы на мой внутренний сервер. Внедрение Redux-Promise в качестве промежуточного программного обеспечения решает проблему потока асинхронных данных.

Учитывая масштабируемое приложение, мне может понадобиться связать несколько вызовов axios в моем создателе действия. Я думаю, что я все еще могу использовать Redux-Promise в качестве промежуточного программного обеспечения, и это позаботится об асинхронном потоке данных в моем приложении.

В целом команда более склонна к использованию Redux-Thunk, который я считаю более сложным синтаксисом для этой проблемы. Мне нужны предложения по оценке этих 2-х рамок, учитывая, что большинство моих создателей действия делают только аксиомы (promises). Я видел много дискуссий о Redux-thunk здесь. Я понял, как может быть полезно., Но мне нужно больше разъяснений, оценивая Redux-Promise и Redux-Thunk вместе при использовании только для Promises. Какое промежуточное ПО лучше в такой ситуации и почему? Какие преимущества я получаю от Redux-Thunk над Redux-Promise? Или нет?

Теги:
redux
axios
redux-thunk

1 ответ

19
Лучший ответ

Redux Promise удобна для отправки трех действий (запрос, успех, сбой), не записывая этот код вручную.

Redux Thunk удобен для потока асинхронных данных, когда вы выражаете одного создателя действия в ожидании другого создателя действия. Он также позволяет вам читать текущее состояние условных отправлений и ранних выплат.

Вы можете использовать их вместе или использовать в любом случае. Я бы рекомендовал начать с Redux Thunk, потому что он предлагает больше контроля и более универсален. После того, как вы его заработаете, вы можете рассмотреть возможность добавления Redux Promise, чтобы удалить часть кода шаблона, связанного с диспетчеризацией трех видов действий. Если вы обнаружите, что он не покупает вас много, удалите его. С другой стороны, если вы заметите, что все создатели твой боевиков просто отправили одно обещание, вы можете удалить Redux Thunk.

Если это все еще запутывает, я рекомендую просто использовать Redux Thunk, пока вы не будете более комфортно работать с промежуточным программным обеспечением.

  • 1
    Спасибо за разъяснения. Как вы упомянули, создатели экшена пока просто отправляют одно обещание, и поэтому Redux-Promise кажется достаточным решением. Но когда вы говорите о Redux-Thunk, предлагающем больший контроль, вы имеете в виду, что он дает вам возможность накапливать состояние, а также отправлять действия, когда нам нужно?
  • 0
    @DishantSoni Да, именно так.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню