Book Image

React 16 Essentials - Second Edition

By : Christopher Pitt, Artemij Fedosejev, Adam Boduch
Book Image

React 16 Essentials - Second Edition

By: Christopher Pitt, Artemij Fedosejev, Adam Boduch

Overview of this book

React 16 Essentials, Second Edition, fully updated for React 16, takes you on a fast-paced journey through building your own maintainable React 16 applications. React experts Artemij Fedosejev and Adam Boduch give you all the essentials you need to know and start working with React 16, in this new edition of the best-selling React.js Essentials title. You'll find the latest React 16 code updates, assessment of React Fiber, new coverage of Redux, and how to work as a modern React developer. The authors offer you their current assessment of React Fiber, and you'll soon be exploring React 16 hands on, creating your own single and multiple user interface elements with React 16. You'll then see how to create stateless and stateful components and make them reactive. You'll also learn to interact between your components and lifecycle methods, and gauge how to effectively integrate your user interface components with other JavaScript libraries. Delve deep into the core elements of the Redux architecture and learn how to manage your application and data persistence. Then go the extra mile with the Jest test framework, and run multiple tests on your applications and find solutions to scale without complexity. Today React is used by Facebook, Instagram, Khan Academy, and Imperial College London, to name a few. Many new users recognize the benefits of React and adopt it in their own projects, forming a fast-growing community. The speed at which React has evolved promises a bright future for anyone who invests in learning it today. Let Artemij and Adam bring you a brand new look at React 16 and React Fiber, and move your web development into the future.
Table of Contents (20 chapters)
React 16 Essentials Second Edition
About the Authors
About the Reviewers
Customer Feedback
Free Chapter
What's New in React 16

Creating a store

As you learned earlier, stores manage data in your Flux architecture. They provide that data to the React components. We'll create a simple store that manages a new tweet that our application receives from Twitter.

Create a new folder called stores in our project's ~/snapterest/source/stores directory. Then, create the TweetStore.js file in it:

import AppDispatcher from '../dispatcher/AppDispatcher';
import EventEmitter from 'events';

let tweet = null;

function setTweet(receivedTweet) {
  tweet = receivedTweet;

function emitChange() {

const TweetStore = Object.assign({}, EventEmitter.prototype, {
  addChangeListener(callback) {
    this.on('change', callback);

  removeChangeListener(callback) {
    this.removeListener('change', callback);

  getTweet() {
    return tweet;

function handleAction(action) {
  if (action.type === 'receive_tweet') {