redux-saga is an awesome library that aims to make side effects (i.e. asynchronous things like data fetching and impure things like accessing the browser cache) easier and better.
While originally targetting Redux,
redux-saga is actually not strictly tied to
redux and do not rely on any internals of it's implementation. Actually
redux-saga could be used with Vuex with
put effect commiting mutations
This library wraps
redux-saga so it can be used as Vuex plugin. It's external interface is similar to middleware provided by
$ npm install --save vuex-redux-saga redux-saga
const sagaPlugin = ;const store =// ...plugins: sagaPlugin;// launch your sagassagas;
Creates a Vuex plugin and connects the Sagas to the Vuex Store
options: Object- A list of options to pass to the middleware. Currently supported options are:
sagaMonitor: SagaMonitor - If a Saga Monitor is provided, the middleware will deliver monitoring events to the monitor.
logger: Function - defines a custom logger for sagas. By default, saga runner logs all errors and warnings to the console. This option tells plugin to send errors/warnings to the provided logger instead. The logger is called with the params
(level, ...args). The 1st indicates the level of the log ('info', 'warning' or 'error'). The rest corresponds to the following arguments (You can use
args.join(' ') to concatenate all args into a single String).
onError: Function - if provided, the middleware will call it with uncaught errors from Sagas. useful for sending uncaught exceptions to error tracking services.
saga. Can be used to run Sagas only after
sagaPlugin was added to instance of
saga: Function: a Generator function
args: Array<any>: arguments to be provided to
The method returns a Task descriptor.
MIT © Illya Klymov