The Plan for React 18 – React Blog

Updated November 15, 2021

React 18 is now in beta. More information on the status of the release is available in the React 18 Working Group’s post.

The React team is happy to share a few updates:

  1. We have started work on the React 18 release, which will be our next major version.
  2. We have set up a working group to prepare the community for the gradual takeover of new features in React 18.
  3. We’ve released a React 18 Alpha so librarians can try it out and give feedback.

These updates are primarily aimed at third-party library maintainers. If you are learning, teaching, or using React to build user-facing applications, feel free to ignore this post. But feel free to follow the discussions in the React 18 working group if you are curious!

What’s up in React 18?

Once released, React 18 will include out-of-the-box enhancements (such as automatic batching), new APIs (such as startTransition), and a new streaming server renderer with built-in support for React.lazy.

These features are possible thanks to a new opt-in mechanism we add in React 18. It’s called “concurrent rendering”, and it lets React prepare multiple versions of the user interface at the same time. This change is mostly behind the scenes, but it opens up new opportunities to improve both the real and perceived performance of your app.

If you’ve been following our research into the future of React (we do not expect you to do that!), You may have heard of something called “simultaneous mode” or that it may corrupt your app. In response to this feedback from the community, we have redesigned the upgrade strategy for gradual takeover. Instead of an all-or-nothing “mode”, simultaneous playback will only be enabled for updates triggered by one of the new features. In practice, that means you will be able to adopt React 18 without rewriting and try the new features at your own pace.

A gradual adoption strategy

Since concurrency in React 18 is opt-in, there are no significant out-of-the-box breaking changes in component behavior. You can upgrade to React 18 with minimal or no changes to your application code, with a level of effort comparable to a typically larger React release. Based on our experience converting multiple apps to React 18, we expect many users will be able to upgrade within a single afternoon.

We have successfully delivered simultaneous functions to tens of thousands of components on Facebook, and in our experience we have found that most React components “just work” without further modifications. We are committed to ensuring that this is a smooth upgrade for the whole community, so today we announce the React 18 working group.

We’re trying something new for this release: We’re inviting a panel of experts, developers, library writers, and educators from across the React community to join our React 18 working group to provide feedback, ask questions, and collaborate on release. We could not invite everyone we wanted to this initial, small group, but if this experiment succeeds, we hope there will be more in the future!

The goal of the React 18 working group is to prepare the ecosystem for a smooth, gradual takeover of React 18 from existing applications and libraries. The working group hosts GitHub Discussions and is available for the public to read. Working group members can provide feedback, ask questions and share ideas. The core team will also use the discussion repo to share our research findings. As the stable release gets closer, any important information will also be published on this blog.

For more information on upgrading to React 18 or additional resources on the release, see the React 18 announcement post.

Access to the React 18 Working Group

Everyone can read the discussions in the React 18 working group’s repo.

Because we expect an initial increase in interest in the working group, only invited members will be allowed to create or comment on threads. However, the threads are fully visible to the public, so everyone has access to the same information. We believe that this is a good compromise between creating a productive environment for working group members and at the same time maintaining transparency with the wider community.

As always, you can submit bug reports, questions, and general feedback to our troubleshooting.

How to try React 18 Alpha today

New alphas are released regularly at npm using @alpha roof. These releases are built using the latest commit to our main repo. When a function or bug is merged, it is displayed in alpha the following day of the week.

There may be significant behavioral or API changes between alpha releases. Please remember that alpha releases are not recommended for user-facing production applications.

The expected timeline for the release of React 18

We have not scheduled a specific release date, but we expect it will take several months of feedback and iteration before React 18 is ready for most production applications.

  • Library Alpha: Available today
  • Public beta: At least several months
  • Release Candidate (RC): At least several weeks after Beta
  • General availability: At least several weeks after RC

More details about our expected release timeline are available in the working group. We will post updates on this blog as we get closer to a public release.

Leave a Comment