It depends on the architectural pattern you’re using. In React, the most common way is to use Flux or Redux, and for Redux I’ve always used Thunk as a middleware. Basically, in your action creators you can make Ajax requests to fetch data. For some of the components, like Grid, that have a lot of built-in data fetching functionality, I would suggest using a proxy on the store especially for things like doing remote sorting, filtering, and paging. Here’s a great example of that – ExtReact REST Example. You can download and run the code with a few simple commands. It basically shows you how to implement a back-end for a store proxy. It’s a simple grid that allows search as well as filtering and sorting on the server side. Your application will probably use a mix of Ajax requests through your implementation of Flux and proxies to do this kind of very efficient data fetching for these big data components like grids and charts.