Skip to content

CalebMorris/reflux-store-cache-mixin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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);

      });
  },
});

About

Reflux store chaching mixin to reduce unnecessary calls

Resources

License

Stars

Watchers

Forks

Packages

No packages published