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

Watching the events flow by

The APIs we have seen in the previous chapters allow you to create observables and react to the changes via reactions. MobX also gives you a way to tap into the events that flow internally to make the reactive system work. By attaching listeners to these events, you can fine-tune the use of some expensive resources or control which updates are allowed to be applied to the observables.

Hooking into the observability

Normally, reactions are the place where we read observables and apply some side effects. This tells MobX to start tracking the observable and re-trigger the reaction on changes. However, if we look at this from the perspective of the observable, how does it know when it is being used by a reaction? How can it do a one-time setup when it is read in a reaction and also clean up when it's no longer being used?

What we need here is the ability to know when an observable becomes observed and when it becomes unobserved: the two points in time where it becomes...