Newton's Programmatic Measurements
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    mighty-duxpublic

    Mighty Dux

    Flux stores inspired by Redux

    build status

    Install

    $ npm install mighty-dux flux --save
    

    Usage

    Dux exposes two methods for creating stores, createStore and createClass.

    Create Store

    Returns a new instance of a Dux Store. It is passed a flux dispatcher and an object of options.

    var Dux = require('mighty-dux');
    var Dispatcher = require('flux').Dispatcher;
     
    var dispatcher = new Dispatcher();
    var store = Dux.createStore(dispatcher, {options});

    Create Class

    Returns a class for creating instances of a Dux Store. It is passed an object of options. This is useful for an instances architecture rather than traditional flux singletons.

    var Dux = require('mighty-dux');
    var Dispatcher = require('flux').Dispatcher;
     
    var dispatcher = new Dispatcher();
    var AppStore = Dux.createClass({options});
     
    var app = new AppStore(dispatcher);

    Store Options

    getInitialState

    getInitialState returns the intial state of the store

    Action Reducers (currentState, action)

    Action Reducers are reducers that are called on a store when an action matches the action type. Action Reducers are passed the current state object, as well as the matching action. Return the new state object.

    var Store = Dux.createStore(app, {
        getInitialState() {
            return {counter: 0};
        },
        INCREMENT(state, action) {
            return {counter: state.counter + 1};
        },
        DECREMENT(state, action) {
            return {counter: state.counter - 1};
        }
    });
     
    app.dispatch({type: 'INCREMENT'});
    console.log(Store.getState().counter); // 1

    Custom Options

    Any other methods or properties have direct access to the store object via the this keyword.

    var Store = Dux.createStore(app, {
        getInitialState() {
            return {
                firstName: 'ian',
                lastName: 'williams'
            };
        },
        fullName() {
            var {firstName, lastName} = this.getState();
            return firstName + ' ' + lastName;
        }
    });

    API

    store.getState

    Returns the current state of the store

    store.resetState

    Resets the state of the store and fires RESET and CHANGE callbacks. This is useful for rehydrating stores on the client in isomorphic applications. This does not reset the event listeners on the store.

    store.dispatchToken

    The Flux dispatch token for the store. Can be used with Dispatcher.waitFor

    store.subscribe (event, callback)

    Subscribe to store events. Optionally pass an event type, or subscribe to all events that affect the store.

    store.subscribe('EVENT', function() {
        store.getState(); // current state
    });

    store.unsubscribe (event, callback)

    Unsubscribe callback from Store events. Event Type is also optional

    store.unsubscribe('EVENT', callback);

    store.listeners

    Object of event listeners per store event.

    store.waitFor (event)

    Calls the dispatcher instance's waitFor method.

    Keywords

    install

    npm i mighty-dux

    Downloadsweekly downloads

    0

    version

    0.6.5

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar