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
Dedication
Packt Upsell
Foreword
Contributors
Preface
Index

The Reactive UI


In the core-triad of MobX, reactions play the role of affecting the outside world. In Chapter 2, Observables, Actions, and Reactions, we have seen a few of these reactions in the form of autorun(), reaction(), and when():

The observer() is yet another kind of reaction that helps in binding the React world to MobX. observer() is part of the mobx-react NPM package, a binding library for MobX and React. It creates a higher-order-component (HOC) that wraps a React component to automatically update on changes to the observable state. Internally, observer() keeps track of observables that are dereferenced in the render method of the component. When any of them change, a re-render of the component is triggered. 

Note

It is quite common to sprinkle observer() components throughout the UI component tree. Wherever an observable is required to render the component, an observer() can be used. 

The UI that we want to build will map the observable state of the BookSearchStore to various components...