What we'll cover in the course, and how to make full use of the course.
The history of Recoil, why it was built, and why you would (and wouldn't) want to use it.
Let's look at the project we'll be working on and get it set up. We'll also install Recoil.
We store shareable state in a Recoil atom, and explore API you can use to interact with them.
Learn how to build simple derived state using Recoil Selectors.
We look at a common React Context performance bottleneck and how Atom Families can solve it.
We take further advantage of Atom Families by adding an Edit Properties sidebar and element resizing.
We take a look at how to and why you'd use a selectorFamily.
We fetch user data using a selector and a selectorFamily, and learn how Recoil works with Suspense.
We cover a couple of more advanced patterns when fetching data with Recoil.
We take what we've learned about Async Selectors and apply it to our design tool.
How to gracefully handle and recover from errors when using Recoil.
We make use of an "intermediate selector" to control when the data fetching happens.
We create a new selectorFamily that composes functionality on top of our existing editProperty selectorFamily.
We learn the basics of atom effects by persisting the state of a Recoil atom to localStorage, and rehydrate that state when the page loads.
We persist the state of an Atom Family. Then we create a reusable Atom Effect function that we can use to persist any Atom or Atom Family to localStorage.
We look at how to sync Recoil state to and from an API using Atom Effects.
We look at how to avoid making an API call for each atom initialised in an atom family.
We look at how to prevent onSet from being called when the atom is first initialised.
When should you use an Async Selector and when should you use an Atom Effect?