Summary
In this chapter, we first learned about handling form submission and states using Form Actions and the Action State Hook. Then, we simulated a potential issue when dealing with rendering computationally expensive components: Blocking the UI. Next, we solved this issue by introducing a Transition Hook to change the state in a non-blocking way, allowing the UI to remain responsive while the computationally expensive components are rendering. Finally, we learned about implementing optimistic updates to show results immediately while waiting for an asynchronous operation to finish.
In the next chapter, we are going to learn how to use Hooks to implement client-side routing in our blog application.