A simple, declarative, and composable way to fetch data for React components. This project was inspired by (and forked from) React Redux. Redux/Flux is a wonderful library/pattern for applications that need to maintain complicated client-side state; however, if your application is mostly fetching and rendering read-only data from a server, it can over-complicate the architecture to fetch data in actions, reduce it into the store, only to select it back out again. The other approach of fetching data inside the component and dumping it in local state is also messy and makes components smarter and more mutable than they need to be. This module allows you to wrap a component in a connect() decorator like react-redux, but instead of mapping state to props, this lets you map props to URLs to props. This lets you keep your components completely stateless, describe data sources in a declarative manner, and delegate the complexities of data fetching to this module.
Features
- By default, the requests are compared using their URL, headers, and body
- Automatic Refreshing
- Functions can also be used for post data to the server in response to a user action
- Functions can also be used to manually refresh data by overwriting an existing PromiseState
- Identity requests, static data and transforming responses
- Both request and response headers and other metadata are accessible