Decoupled Drupal with React

Of all the projects to emerge from the JavaScript renaissance, React, a library for rendering data in view components, has seen an explosion in popularity due to its fresh approach to state, colocation of view templates with view logic, and lack of assumptions about the stack. Created by Facebook to power its web applications, React is an intriguing candidate for integration with decoupled Drupal. The Virtual DOM-based state system and JSX templating language are two of the most influential recent innovations in client-side frameworks.

React is a compelling choice for use as a lightweight front end backed by decoupled Drupal. Though its most overt power lies in fully decoupled single-page applications, its component-based rendering approach also opens the door for other approaches such as progressively decoupled Drupal, in which Drupal renders and serves pages before handing off control over CMS-rendered page components. Moreover, React’s surrounding ecosystem is increasingly compelling, especially as a GraphQL server for Drupal 8 begins to take shape.

What makes React so compelling for front-end developers as a solution for decoupled CMS architectures? This session explores why React is well-positioned for decoupled Drupal from a conceptual and architectural angle before examining integration techniques from a practical standpoint. Here are just a few of the concepts we’ll delve into:

  • Origins, motivations, and comparisons
  • React is a library, not an MVC framework
  • React architecture and components
  • State and the Virtual DOM
  • Rendering and JSX
  • Drawbacks of React
  • Why React for decoupled Drupal?
  • Fully decoupled Drupal with React
  • React and REST in Drupal
  • Working with Drupal data in React
  • Progressively decoupled Drupal with React
  • React and GraphQL in the Drupal ecosystem
  • Epilogue: React within Drupal

This session is geared toward front-end developers who are interested in decoupled architectures with Drupal and up-and-coming JavaScript frameworks. No prior knowledge of React is assumed, but strong familiarity with JavaScript and RESTful architectures will be necessary. A working knowledge of Drupal and decoupled CMS architectures is helpful but not necessary.