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

В каких случая использовать redux-saga в каких redux-thunk?

В каких случая использовать redux-saga в каких redux-thunk
В каких случая redux-action-creators

import {
  FETCH_APP_DETAILS,
  FETCH_APP_DETAILS_SUCCESS,
  FETCH_APP_DETAILS_ERROR,

  FETCH_SIMILAR_JOBS,
  FETCH_SIMILAR_JOBS_SUCCESS,
  FETCH_SIMILAR_JOBS_ERROR,

  CREATE_NOTE,
  CREATE_NOTE_SUCCESS,
  CREATE_NOTE_ERROR,
  CREATE_NOTE_CLEAR,

  CREATE_REMINDER,
  CREATE_REMINDER_SUCCESS,
  CREATE_REMINDER_ERROR,
  CREATE_REMINDER_CLEAR,

  UPDATE_STATUS,
  UPDATE_STATUS_SUCCESS,
  UPDATE_STATUS_ERROR,
  UPDATE_STATUS_CLEAR,

  UPDATE_APP_AFTER_CREATE_NOTE,
  UPDATE_APP_AFTER_UPDATE_STATUS,
  UPDATE_APP_AFTER_CREATE_REMINDER,

  REMOVE_NOTE,
  REMOVE_NOTE_SUCCESS,
  REMOVE_NOTE_ERROR,

  REMOVE_REMINDER,
  REMOVE_REMINDER_SUCCESS,
  REMOVE_REMINDER_ERROR,

  UPDATE_APP_AFTER_REMOVE_REMINDER,
  UPDATE_APP_AFTER_REMOVE_NOTE,
} from './constants.es6';


И как избавится от таких простынь. С ними конечно все четко и понятно, и создаются на раз-два но мне кажется уже ж придумали что то
  • Вопрос задан
  • 1068 просмотров
Подписаться 3 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
gadfi
@gadfi
https://gamega.org
лично мне хватает redux-thunk возможно перейду на saga возможно на что то еще но вашу проблему в текучем проекте решит не saga а обыччная enum (да в чистом виде перечислений в js нет) и отказ от отдельного файла для подобных констант
1) чтобы не импортировать все констаны используйте подобный импорт
import * as types from '../action'
...
case types. UPDATE_STATUS_SUCCESS:
...


2) чтобы удобнее было поддерживать код, пишите константы непосредсвенно перед функией (раньше тоже вынсоил константы в отдльеный файл, но так значиатльно удобнее
export cont  FETCH_SIMILAR_JOBS ='FETCH_SIMILAR_JOBS'
export cont  FETCH_SIMILAR_JOBS_SUCCESS = 'FETCH_SIMILAR_JOBS_SUCCESS'
export cont  FETCH_SIMILAR_JOBS_ERROR='FETCH_SIMILAR_JOBS_ERROR'
export const fetchSimlarJob = ()=>{
.....
Ответ написан
@joniks
Вебмастер
Redax-thunk и redax-saga сильно отличаются своими подходами. Первый через асинхронный экшен генерирует обычные экшены(request, success, error) и уже их обрабатывают через редьюсер. Саги же подписываются на обычный экшен и через механизм генераторов совершают асинхронные действия, кои благодаря опять же генераторам легче тестировать.

По сути саги могут все тоже самое, что и танки, а вот наоборот нет. Пример: у меня есть редакс-мидлвара, она ловит с вебсокетов экшн, так вот сагами я могу ассинхронно обработать этот экшен подписавшись а вот танками без дополнительных заморочек нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы