Flumpt
Conceptual Implementation of EventEmitter based Flux.
Concepts
Flux is (...What you think) but all you need is just an EventEmitter
.
Interface is inpired by Om
.
Example
Hello World
;;; { this; } { return <div> thispropscount <button onClick= this>increment</button> </div> ; } { // `subscribe` is called once in constructor this; } { return <MyComponent ...state/>; } // Setup rendererconst app = { ; } initialState: count: 0 middlewares: // logger // it may get state before unwrap promise { console; return state } ; app;app; app // it fires rendering
Flux
isEventEmitter
Component
is justReactComponent
withdispatch
method.
With decorator
Added by v0.3.0. Need babel-plugin-transform-decorators-legacy.
@dispatchableComponent { return <button onClick= thiscontext>+1</button> } @Component { return <div> <span>thispropscount</span> <CounterIncrement/> </div> }
With TypeScript
Need node react reace-dom es6-promise
type definitions.
npm install -g dtsm
dtsm install node react reace-dom
; interface State count: number; <State> { this; } // ... render or others
See detail in index.d.ts
Middlewares
Middleware function type is <T>(t: T) => T | Promise<T>
or <T>(t: Promise<T>) => Promise<T>;
. (Use Promise.resolve if you consider promise)
Flux#render(state)
is always promise unwrapped promise but a middelware handle raw nextState received by Flux#update
.
LICENSE
MIT