Summary
Reading and writing data are important aspects of modern web application development. Remix provides primitives, conventions, and levers for both.
This chapter introduced you to Remix’s server-side loader
and action
functions. You learned that loader
and action
functions are route-level HTTP request handlers that get and mutate data. Loaders handle HTTP GET
requests, while action
functions receive all other incoming HTTP requests.
Initially, Remix renders our app on the server. All further page transitions happen on the client. On the initial request, loader data is used during server-side rendering. On all subsequent navigations, Remix fetches loader data via fetch requests and only re-renders the changing parts of the route hierarchy on the client.
Next, you learned that route-level data fetching allows us – among other things – to flatten request waterfalls that may occur with component-level fetching. Remix also executes loader
functions in...