You are previewing Developing a React Edge: The JavaScript Library for User Interfaces.
O'Reilly logo
Developing a React Edge: The JavaScript Library for User Interfaces

Book Description

React.js was born to bring the PHP style work flow to client side applications. React.js has a narrow scope, and it is concerned with only updating the DOM and responding to events. React.js is not a Model-View-Controller framework; it is actually the V in MVC. This narrow scope gives you the freedom to incorporate React into a wide variety of systems. In this book we cover all aspects of React.js with the help of a Survey Builder example.

Table of Contents

  1. 1. Introduction to React.js
    1. Background
    2. Book Overview
  2. 2. JSX
    1. What is JSX
    2. Benefits of JSX
      1. Easy to Visualize
      2. Familiarity
      3. Semantics
    3. Composite Components
      1. Setup
      2. Defining a Custom Component
      3. Child Nodes
    4. How is JSX Different than HTML?
      1. Attributes
      2. Conditionals
      3. Non-DOM Attributes
      4. Events
      5. Special Attributes
      6. Styles
    5. React Without JSX
    6. Further Reading & References
  3. 3. Component Lifecycle
    1. Lifecycle Methods
    2. Instantiation
    3. Lifetime
    4. Teardown
    5. Anti Pattern — Calculated Values as State
  4. 4. Data Flow
    1. Props
    2. PropTypes
    3. getDefaultProps
    4. state
    5. What belongs in state and what belongs in props
  5. 5. Event Handling
    1. Attaching Event Handlers
    2. Events and State
    3. Event Objects
    4. Summary
  6. 6. Composing Components
    1. Extending HTML
    2. Composition By Example
    3. Parent / Child Relationship
    4. Wrap Up
  7. 7. Mixins
    1. What are Mixins? 
    2. Testing
  8. 8. DOM Manipulation
    1. Accessing Managed DOM Nodes
    2. Incorporating Non-React Libraries
    3. Summary
  9. 9. Forms
    1. Uncontrolled Components
    2. Controlled Components
    3. Form Events
    4. Label
    5. Textarea and Select
    6. Checkbox and Radio
    7. Multiple Form Elements and Change Handlers
    8. Custom Form Components
    9. Focus
    10. Usability
  10. 10. Animations
    1. CSS Transition Groups
    2. Transition Group Pitfalls
    3. Interval Rendering
    4. Summary
  11. 11. Performance Tuning
    1. shouldComponentUpdate
    2. Key
  12. 12. Server Side Rendering 
    1. Render functions
    2. Server Side Component Lifecycle
    3. Serverside Testing
  13. 13. Addons
    1. Animations
    2. Two-Way Binding Helpers
    3. Class Name Manipulation
    4. Test Utilities
    5. Cloning Components
    6. Immutability Helpers
    7. PureRenderMixin
    8. Performance Tools
  14. 14. Tools and Debugging
    1. Starting out
    2. JSBin and JSFiddle
  15. 15. Testing
    1. Getting Started
    2. Our first spec: Rendering
    3. Mock Components
  16. 16. Build Tools
    1. Webpack 
    2. Browserify
    3. Add some React content
  17. 17. Architectural Patterns
    1. MVC
    2. Routing
    3. Om (ClojureScript)
    4. Flux
  18. 18. In the family
    1. Jest
    2. Immutability-js
    3. Flux
    4. Automated Browser Testing
  19. 19. Uses
    1. Desktop
    2. Email
    3. Charting