3.1.2 • Published 10 years ago
nutflux v3.1.2
Nutflux
Simple idiomatic flux helpers based on Facebook's Dispatcher.
Installation
npm install nutflux --saveUsage
- Creating constants that won't overlap, even with the same string value
var { createConstants } = require("nutflux");
var MyConstants = createConstants(
    "HELLO_WORLD"
);
module.exports = MyConstants;- Built in single flux.Dispatcherinstance -Nutflux.AppDispatcher
var { AppDispatcher } = require("nutflux");
var MyConstants = require("./MyConstants");
AppDispatcher.dispatch({
    actionType: MyConstants.HELLO_WORLD,
    to: "Nutmeg"
});- Handy BaseStoreclass:
var { BaseStore } = require("nutflux");
var React = require("react");
var baseStore = new BaseStore();
baseStore.registerWithDispatcher();
var TestContainer = React.createClass({
    componentDidMount() {
        baseStore.addChangeListener(this._onChange);
    },
    componentWillUnmount() {
        baseStore.removeChangeListener(this._onChange);
    },
    _onChange: function() {
        console.log("CHANGED!");
    },
});
baseStore.emitChange();- Even handier createStorewrapper function- Use initializefunction to set up initial state for the store
- Use mixinsin much the same way asReact.createClassdoes.
- Define handlersforactionTypesdeclaratively.
 
- Use 
var { createStore } = require("nutflux");
var MyConstants = require("./MyConstants");
var MyStoreMixin = require("./MyStoreMixin");
var HelloWorldStore = createStore({
    mixins: [
        MyStoreMixin
    ],
    initialize: function() {
        this.saidHello = false;
    },
    handlers: {
        [MyConstants.HELLO_WORLD]: "helloWorld"
    },
    helloWorld() {
        console.log("hello there!");
        this.saidHello = true;
        this.emitChange();
    },
    getHasSaidHello: function() {
        return this.saidHello;
    }
});
module.exports = HelloWorldStore;- Even handier createStoreListenMixinlets us build a way of components listening to stores and setting state when those stores change.
var { createStoreListenMixin } = require("nutflux");
var React = require("react");
var HelloWorldStore = require("./HelloWorldStore");
var HelloWorldContainer = React.createClass({
    mixins: [
        createStoreListenMixin(HelloWorldStore)
    ],
    getStateFromStores() {
        return {
            hasSaidHello:  return HelloWorldStore.getHasSaidHello()
        }
    },
});
module.exports = HelloWorldContainer;- createPureClass(obj)simplifies using PureRenderMixin - it adds PureRenderMixin- obj.mixinsand passes obj to- React.createClass()