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

Observable state and actions


The UI is just a grandiose transformation of data. It is also an observer of this data and fires actions to change it. Since data (aka state) is so central to a UI, it makes sense we start first by modeling this state. With MobX, observables represent that state. Looking back at the UI design from before, we can identify various parts of the observable state:

  • There is the search-text that the user types. This is an observable field of type string.
  • There is an observable array of results.
  • There is meta information about the results, such as the current subset and the total result count.
  • There is some state to capture the async search() operation that we will be invoking. The initial status of the operation is empty. Once the user invokes the search, we are in the pending state. When the search completes, we could either be in the completed or failed state. This looks more like an enumeration of <empty>,pending, completed, or failed, and can be captured with...