falcro
[work in progress]
falcor as a component
npm install react falcor falcro --save
// instantiate a model, matching paths to data sourceslet model = cache: ... source: ...; // include the Root component somewhere up in your component hierarchy{ return <Root => <User ='threepointone' /> </Root>;} // and then fetch anywhere in your app{ return <Get => users error loading} loading ? <div>loading...</div> : <img = = /> </Get>;} // all the falcor goodies for free - batching, caching, .set/.call, etc //BONUS - server side async rendering
Model
(see falcor.Model)
Root
- model - instance of Model
Get
- query - falcor model query. accepts falcor-path-syntax
- children - a function, that will receive, on render -
- ...value - ie, the result of the query
- error - if errored
- loading - true if a request is in flight
- $ - actions on the model instance - setValue, call, and refresh (more to come)
renderToString(element, model)
- returns a promise, which resolves to the html
examples
use react-heatpack to run examples from /examples
directory
todo
so much
- refreshing only the components that change
- streaming results
- redux/router scenarios (reduce/rewind/replay/etc)
- shallow render testing
- idents
- derefs
- etc etc