Por lo que sé y corregirme si me equivoco, redux-thunk es un middleware que nos ayuda a distribuir funciones asíncronas y depurar valores en la acción misma, mientras que cuando usé redux-promise no podía crear funciones asíncronas sin implementar la mía propia mecanismo como Action lanza una excepción de despachar solo objetos simples.
¿Cuáles son las principales diferencias entre estos dos paquetes? ¿Hay algún beneficio de usar ambos paquetes en una aplicación de reacción de una sola página o sería suficiente apegarse a redux-thunk?
fuente
Es probable que desee / necesite ambos juntos en su aplicación. Comience con redux-promise para tareas asincrónicas de producción de promesas de rutina y luego escale para agregar Thunks (o Sagas, etc.) a medida que aumenta la complejidad :
redux-promise
mejorarás tu vida y simplificarás eso, rápido y fácil. (En pocas palabras, en lugar de tener que pensar en 'desenvolver' sus promesas cuando se resuelven, luego escribir / enviar los resultados, redux-promise (-middleware) se encarga de todas esas cosas aburridas por usted).En esos casos, el beneficio de
redux-thunk
es que le permite encapsular la complejidad dentro de su creador de acciones .Pero tenga en cuenta que si su Thunk produce y envía promesas, entonces querrá usar ambas bibliotecas juntas :
redux-promise
luego se encargaría de desenvolver en el (los) reductor (es) las promesas individuales generadas por su Thunk, para evitar la repetición que eso implica. (En cambio, podrías hacer todo en Thunks, conpromise.then(unwrapAndDispatchResult).catch(unwrapAndDispatchError)
... pero ¿por qué lo harías?)Otra forma sencilla de resumir la diferencia en los casos de uso: el comienzo frente al final del ciclo de acción de Redux :
redux-promise
es para el final de su flujo, una vez que todo se ha reducido a simples promesas, y solo desea desenvolverlas y almacenar su valor resuelto / rechazado en la tiendaNOTAS / REFS:
redux-promise-middleware
que es una implementación más completa y comprensible de la idea detrás del originalredux-promise
. Está en desarrollo activo y también se complementa muy bien conredux-promise-reducer
.redux-saga
, que es muy similarredux-thunk
, pero se basa en la sintaxis de las funciones del generador. Nuevamente, es probable que lo use junto conredux-promise
.fuente
Revelación completa: Soy relativamente nuevo en el desarrollo de Redux y yo mismo tuve problemas con esta pregunta. Parafrasearé la respuesta más sucinta que encontré:
ReduxPromise devuelve una promesa como carga útil cuando se envía una acción, y luego el middleware ReduxPromise trabaja para resolver esa promesa y pasar el resultado al reductor.
ReduxThunk, por otro lado, obliga al creador de la acción a retrasar el envío del objeto de acción a los reductores hasta que se llame a dispatch.
Aquí hay un enlace al tutorial donde encontré esta información: https://blog.tighten.co/react-101-part-4-firebase .
fuente