vuex-redux-saga
Use redux-saga with Vuex
Overview
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 redux-saga
.
Installation
$ npm install --save vuex-redux-saga redux-saga
Usage
import createSagaPlugin from 'vuex-redux-saga'
const sagaPlugin = createSagaPlugin();
const store = new Vuex.Store({
plugins: [ sagaPlugin ]
});
sagas.forEach(sagaPlugin.run);
API
createSagaPlugin(options)
Creates a Vuex plugin and connects the Sagas to the Vuex Store
sagaPlugin.run(saga, ...args)
Dynamically run saga
. Can be used to run Sagas only after sagaPlugin
was added to instance of Vuex.Store
.
saga: Function
: a Generator functionargs: Array<any>
: arguments to be provided to saga
The method returns a Task descriptor.
Notes
saga
must be a function which returns a Generator Object.
See awesome redux-saga docs for more details
License
MIT © Illya Klymov