Book Image

Flux Architecture

By : Adam Boduch
Book Image

Flux Architecture

By: Adam Boduch

Overview of this book

Whilst React has become Facebook’s poster-child for clean, complex, and modern web development, it has quietly been underpinned by its simplicity. It’s just a view. The real beauty in React is actually the architectural pattern that handles data in and out of React applications: Flux. With Flux, you’re able to build data-rich applications that engage your users, and scale to meet every demand. It is a key part of the Facebook technology stack that serves billions of users every day. This book will start by introducing the Flux pattern and help you get an understanding of what it is and how it works. After this, we’ll build real-world React applications that highlight the power and simplicity of Flux in action. Finally, we look at the landscape of Flux and explore the Alt and Redux libraries that make React and Flux developments easier. Filled with fully-worked examples and code-first explanations, by the end of the book, you'll not only have a rock solid understanding of the architecture, but will be ready to implement Flux architecture in anger.
Table of Contents (21 chapters)
Flux Architecture
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Implementation pain points


In the preceding section, we covered the areas of Flux that might benefit from a custom implementation. Before we dive into Alt.js and Redux, we'll briefly talk about some of pain points with implementing Flux architectures. Asynchronous actions are tough to get right, in any architecture, let alone Flux. The way we partition our application state into stores can be a tricky design problem. If we get this wrong, it can be hard to recover from. Finally, we have data dependency challenges to think about.

Dispatching asynchronous actions

As we discussed in the preceding section, asynchronous action creators are difficult to implement. It's challenging because we usually have to let the stores know that this asynchronous action is about to take place so that the UI can be updated to reflect this. For example, when a button is clicked that sends one or more AJAX requests, we probably want to disable that button before actually sending the request, to prevent duplicate...