Async-rendering & data-fetching for universal React applications
npm install react-resolver> Async-rendering & data-fetching for universal React applications.
React Resolver lets you define data requirements _per-component_
and will handle the nested, async rendering on both the server & client for you.
For example, the following will load & provide this.props.user for theUserProfile component:
``js
import { resolve } from "react-resolver";
@resolve("user", function(props) {
return http.get(/api/users/${props.params.userId});`
})
class UserProfile extends React.Component {
render() {
const { user } = this.props;
...
}
}
This is the equivalent to asynchronously loading user and providing it to
the component as if it were provided directly:
`xml`
This makes components _pure_, _stateless_, and _easy to test_ as a result.


- - -
_For environments that don't have native Promise support,
install ES6 Promise._
`shell`
$ npm install --save react-resolver
_For React v0.13 support, install v2.x.x._
`shell`
$ npm install --save react-resolver@2
Complete documentation can be found here:
>
- Introduction
- Getting Started
- - -
If you'd like to contribute to this project, all you need to do is clone
this project and run:
`shell``
$ npm install
$ npm test
- Eric Clemmons ([@ericclemmons][twitter])
- Kier Borromeo
- Dustan Kasten
- Adrian Philipp
- Daniel Lo Nigro
- Daniel Chao
- Frederick Fogerty
- Josh Perez
> Internet Systems Consortium license
> ===================================
>
> Copyright (c) 2015 Eric Clemmons
>
> Permission to use, copy, modify, and/or distribute this software for any purpose
> with or without fee is hereby granted, provided that the above copyright notice
> and this permission notice appear in all copies.
>
> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
> OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
> TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
> THIS SOFTWARE.
If you have questions or issues, please [open an issue][issue]!
[1]: https://github.com/ericclemmons/react-resolver/blob/v1/README.md
[2]: https://github.com/ericclemmons/react-resolver/blob/v2/README.md
[changelog]: https://github.com/ericclemmons/react-resolver/blob/master/CHANGELOG.md
[demo]: https://cdn.rawgit.com/ericclemmons/react-resolver/master/examples/stargazers/public/index.html
[issue]: https://github.com/ericclemmons/react-resolver/issues/new
[license]: https://github.com/ericclemmons/react-resolver/blob/master/LICENSE
[twitter]: https://twitter.com/ericclemmons/
[upcoming]: https://github.com/ericclemmons/react-resolver/blob/master/CHANGELOG.md#upcoming