Facebook's React 17 JavaScript library: Here's why its top feature is 'no new features'

React version 17 is all about giving developers more leeway to upgrade apps gradually.
Written by Liam Tung, Contributing Writer

The open-source project behind Facebook's React JavaScript library has unveiled the first release candidate for React 17, its first major version in two and a half years. 

However, the project describes the latest release of Facebook's popular framework for building user interfaces for web apps as "unusual", because it's a major release with no new features for developers. 

"Instead, this release is primarily focused on making it easier to upgrade React itself," explain React contributors Dan Abramov and Rachel Nabors. 

"React 17 is a 'stepping stone' release that makes it safer to embed a tree managed by one version of React inside a tree managed by a different version of React."

SEE: Hiring Kit: Python developer (TechRepublic Premium)

There are new features in the works but the main focus is getting developers on to React 17, so that those features can be rolled out without leaving developers behind on an older version.

The reason for the change in tack is that for the past seven years developers had an "all-or-nothing" choice: either stay on an old version of React or upgrade the whole app to a new version. Additionally, it meant supporting deprecated application programming interfaces. 

"There was no in-between. This has worked out so far, but we are running into the limits of the 'all-or-nothing' upgrade strategy," say Abramov and Nabors

The new approach with React 17 will allow for gradual upgrades in an attempt to cater to developers of apps with an older codebase and to those using two versions of React. 

With React 18 and subsequent versions, developers will be able to upgrade the entire app at once, but they will also have an option to upgrade an app piece by piece. This second approach could be ideal for larger apps that aren't actively maintained and version 17 helps ensure these developers don't get stuck on an old version of React. 

While React 17 does have potentially breaking changes, the major release introduces changes to just 20 components out of 100,000, making it less risky for developers to upgrade to React 17. 

Given that React 17 is just the first release candidate, the React team discourage developers from deploying it into production and warn it is likely to contain more bugs than a stable release.

Editorial standards