Form validation
Filling up forms and validating fields is the classic use-case of the web. So, it's fitting we start here and see how MobX can help us simplify it. For our example, we will consider a User Enrollment form that takes in some standard inputs like first name, last name, email, and password.
The various states of enrollment are captured in the following figure:
The interactions
Looking at the preceding screenshot, we can see some standard interactions going on, such as:
- Entering inputs for various fields
- Validation on those fields
- Clicking the
Enroll
button to perform a network operation
There are few other interactions here that do not meet the eye immediately:
- Network-based validation for the email to ensure that we are not registering with an existing email address
- Showing a progress indicator for the enroll operation
Many of these interactions will be modeled with actions and reactions in MobX. The state will, of course, be modeled with observables. Let's see how the Observables-Actions...