Redux Thunk и Redux Saga занимаются побочными эффектами.В очень простых терминах, применяемых к наиболее распространенному сценарию (асинхронные функции, в частности вызовы AJAX), Thunk позволяет Promises «иметь дело с ними, Saga использует Generators. Thunk прост в использовании, и Promises знакомы многим разработчикам, Saga / Generators болеемощный, но вам нужно будет их освоить. Когда Обещания достаточно хороши, как и Thunk, когда вы регулярно работаете с более сложными делами, Saga предоставляет вам лучшие инструменты.
Например, что происходиткогда вы запускаете вызов AJAX в маршруте / просмотре, а затем пользователь переходит к другому? Можете ли вы в любом случае безопасно позволить редуктору изменить состояние? Saga делает тривиальным отмену эффекта, Thunk требует, чтобы вы позаботились об этом,с решениями, которые не так хорошо масштабируются.
В практическом плане выбор того или другого действительно зависит (тавтологически) от проекта.
Следует помнить, что дваПромежуточное программное обеспечение может сосуществовать, поэтому вы можете начать с Thunks и внедрять Sagas, когда / если вам нужноих (а затем выберите, как / что проводить рефакторинг с практическим опытом ... Решение, которое особенно подходит для "учебных проектов", MVP и т. д.) В общих чертах, Sagas более мощные и их легче тестировать, но они вводят много новыхконцепции, которые могут быть немного подавляющими, если вы также изучаете другие технологии (особенно Redux).
В частности, при работе с простой и эффективной философией Redux (действия (буквальные объекты), подаваемые в редукторы (чистые функции))), вы можете справиться с побочными эффектами с помощью Thunk, который более ограничен, но прост для понимания (Promise.then (). error ()), или с Saga, которая требует, чтобы вы столкнулись с (мощным) понятием, что вы можете делать более сложныевещи с этими действиями.
Стоит также упомянуть (избыточную) наблюдаемую как еще более сложную (и даже более мрачную) парадигму для решения побочных эффектов, на тот случай, если вы уже знакомы с ней (если вы ужеэто может быть проще в использовании, чем изучение саги).