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

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

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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам