Book Image

MobX Quick Start Guide

By : Pavan Podila, Michel Weststrate
Book Image

MobX Quick Start Guide

By: Pavan Podila, Michel Weststrate

Overview of this book

MobX is a simple and highly scalable state management library in JavaScript. Its abstractions can help you manage state in small to extremely large applications. However, if you are just starting out, it is essential to have a guide that can help you take the first steps. This book aims to be that guide that will equip you with the skills needed to use MobX and effectively handle the state management aspects of your application. You will first learn about observables, actions, and reactions: the core concepts of MobX. To see how MobX really shines and simplifies state management, you'll work through some real-world use cases. Building on these core concepts and use cases, you will learn about advanced MobX, its APIs, and libraries that extend MobX. By the end of this book, you will not only have a solid conceptual understanding of MobX, but also practical experience. You will gain the confidence to tackle many of the common state management problems in your own projects.
Table of Contents (17 chapters)
Title Page
Packt Upsell

Development utilities

As you scale your applications with more features, it becomes mandatory to understand how and when the MobX reactive system is being used. MobX comes with a set of debugging utilities that help you monitor and trace the various activities happening inside it. These give you a real-time view of all the observable changes, actions, and reactions firing inside the system.

Using spy() to track the reactivity

Earlier, we saw the observe() function, which allows you to "observe" the changes happening to a single observable. But what if you wanted to observe changes happening across all observables without having to individually set up the observe() handlers? That is where spy() comes in. It gives you insight into how the various observables in your system are changing over time:

disposer = spy(listener: (event) => { })


It takes in a listener function that receives an event object carrying all the details. The event has properties very similar to the observe() handler. There...