Jotai (https://github.com/pmndrs/jotai) is a small library for the global state. It's modeled after
useReducer and with what are called atoms, which are usually small pieces of state. Unlike Zustand, it is a component state, and like Zustand, it is an immutable update model. The implementation is based on the Context and Subscription patterns we learned about in Chapter 5, Sharing Component State with Context and Subscription.
In this chapter, we will learn about the basic usage of the Jotai library and how it deals with optimizing re-renders. With atoms, the library can track dependencies and trigger re-renders based on the dependencies. Because Jotai internally uses Context and atoms themselves do not hold values, atom definitions are reusable, unlike the module state. We will also discuss a novel pattern with atoms, called Atoms-in-Atom, which is a technique to optimize re-renders with an array structure.