reflux-store-cache-mixin

0.0.5 • Public • Published

reflux-store-cache-mixin

Reflux mixin for caching data.

Main usage is to reduce network calls for slowly changing data

Example

// Actions
import Reflux from 'reflux';

const testActions = Reflux.createActions({
  fetch: {
    children : [ 'completed', 'failed' ],
  },
});

export default testActions;

// Store
import Reflux from 'reflux';
import StoreCacheMixin from 'reflux-store-cache-mixin';
import { Map } from 'immutable';

export default Reflux.createStore({
  listenables : testActions,

  data : new Map(),

  mixins : [ StoreCacheMixin ],

  onFetch() {
      this.loadData('data', '*', (data, saveNewData) => {

        if (! data) {
          return fetchData()
            .tap(saveNewData)
            .then((nextData) => {
              this.data = nextData;
              return this.trigger(this.data);
            });
        }

        return this.trigger(this.data);

      });
  },
});

Readme

Keywords

none

Package Sidebar

Install

npm i reflux-store-cache-mixin

Weekly Downloads

42

Version

0.0.5

License

MIT

Last publish

Collaborators

  • calebmorris