Table of contents : Cover Page Title Page Copyright Page introduction New ECMAScript Syntax Popularity of Functional JavaScript JavaScript Tooling Fatigue Why React Doesn’t Have to Be Hard to Learn React’s Future 2. Emerging JavaScript Declaring Variables in ES6 Template Strings Default Parameters Arrow Functions Transpiling ES6 ES6 Objects and Arrays Destructuring Assignment Object Literal Enhancement The Spread Operator Promises Classes ES6 Modules CommonJS 3. Functional Programming with JavaScript What It Means to Be Functional Imperative Versus Declarative Functional Concepts Immutability Pure Functions Data Transformations Higher-Order Functions Recursion Composition Putting It All Together 4. Pure React The Virtual DOM React Elements ReactDOM Children Constructing Elements with Data React Components React.createClass React.Component Stateless Functional Components DOM Rendering Factories 5. React with JSX React Elements as JSX JSX Tips Babel Intro to Webpack Recipes App with a Webpack Build 6. Props, State, and the Component Tree Property Validation Validating Props with createClass Default Props Custom Property Validation ES6 Classes and Stateless Functional Components Refs Inverse Data Flow Refs in Stateless Functional Components React State Management Introducing Component State Initializing State from Properties State Within the Component Tree Color Organizer App Overview Passing Properties Down the Component Tree Passing Data Back Up the Component Tree 7. Enhancing Components Component Lifecycles Mounting Lifecycle Updating Lifecycle React.Children JavaScript Library Integration Making Requests with Fetch Incorporating a D3 Timeline Higher-Order Components Managing State Outside of React Rendering a Clock Dispatcher 8. Redux State Actions Action Payload Data Reducers The Sort Reducer The Store Subscribing to Stores Saving to localStorage Action Creators Middleware 12. React and the Server Isomorphism versus Universalism Server Rendering React Universal Color Organizer Universal Redux Universal Routing Communicating with the Server Actions with Redux Thunks The end