React 18の計画

2021年6月8日 Andrew Clark, Brian Vaughn, Christine Abernathy, Dan Abramov, Rachel Nabors, Rick Hanlon, Sebastian Markbåge, および Seth Webster


Reactチームからいくつか最新情報をお伝えします。

  1. 私たちは、次のメジャーバージョンとなるReact 18のリリースに向けて作業を開始しました。
  2. React 18の新機能の段階的な採用に向けてコミュニティを準備するためにワーキンググループを設立しました。
  3. ライブラリの作者が試してフィードバックを提供できるように、React 18 Alphaを公開しました。

これらの更新は主にサードパーティ製ライブラリのメンテナーを対象としています。Reactを学習、教育、またはユーザー向けのアプリケーションを構築するために使用している場合は、この記事を無視しても構いません。ただし、興味があれば、React 18ワーキンググループでの議論をフォローすることは歓迎です!


React 18で導入されるもの

React 18がリリースされると、すぐに使える改善点(自動バッチ処理など)、新しいAPI(startTransitionなど)、およびReact.lazyの組み込みサポートを備えた新しいストリーミングサーバーレンダラーが含まれます。

これらの機能は、React 18で追加される新しいオプトインメカニズムのおかげで実現可能です。これは「コンカレントレンダリング」と呼ばれ、Reactが複数のバージョンのUIを同時に準備できるようにします。この変更は主に舞台裏で行われますが、アプリの実際のパフォーマンスと知覚されるパフォーマンスの両方を向上させるための新しい可能性を切り開きます。

Reactの将来に関する私たちの調査をフォローしていた場合(そうであることは期待していませんが!)、おそらく「コンカレントモード」と呼ばれるものや、アプリが壊れる可能性があるということを聞いたことがあるでしょう。コミュニティからのこのフィードバックに対応して、段階的な導入のためのアップグレード戦略を再設計しました。すべてかゼロかの「モード」ではなく、コンカレントレンダリングは新しい機能の1つによってトリガーされた更新でのみ有効になります。実際には、これは書き換えなしでReact 18を採用し、自分のペースで新機能を試すことができることを意味します。

段階的な導入戦略

React 18の同時実行はオプトインであるため、コンポーネントの動作にすぐに使える重大な破壊的変更はありません。アプリケーションコードを最小限または変更なしでReact 18にアップグレードでき、一般的なReactのメジャーリリースに匹敵する労力です。いくつかアプリをReact 18に変換した経験から、多くのユーザーは1日の午後以内にアップグレードできると予想しています。

私たちはFacebookで何万ものコンポーネントに同時実行機能を正常に提供し、私たちの経験では、ほとんどのReactコンポーネントは追加の変更なしで「機能する」ことがわかりました。コミュニティ全体にとってこれがスムーズなアップグレードとなるように取り組んでいるため、本日、React 18ワーキンググループを発表します。

コミュニティとの協力

このリリースでは新しいことを試しています。Reactコミュニティ全体の専門家、開発者、ライブラリ作成者、教育者のパネルをReact 18ワーキンググループに参加するよう招待し、フィードバックを提供したり、質問したり、リリースについて共同で作業したりしています。この最初の小さなグループには、招待したい人を全員招待することはできませんでしたが、この実験がうまくいけば、将来的にはさらに多くの機会があることを願っています!

React 18ワーキンググループの目標は、既存のアプリケーションとライブラリがReact 18をスムーズかつ段階的に採用できるようにエコシステムを準備することです。 ワーキンググループは、GitHub Discussionsでホストされており、一般公開されています。ワーキンググループのメンバーは、フィードバックを残したり、質問をしたり、アイデアを共有したりできます。コアチームは、ディスカッションリポジトリを使用して、調査結果も共有します。安定版リリースが近づくにつれて、重要な情報はすべてこのブログにも掲載されます。

React 18へのアップグレードの詳細、またはリリースに関する追加のリソースについては、React 18のお知らせ投稿をご覧ください。

React 18ワーキンググループへのアクセス

誰でもReact 18ワーキンググループリポジトリでディスカッションを読むことができます。

ワーキンググループへの初期の関心の高まりが予想されるため、招待されたメンバーのみがスレッドを作成したり、コメントしたりできます。ただし、スレッドは一般公開されており、誰でも同じ情報にアクセスできます。これは、ワーキンググループのメンバーにとって生産的な環境を作り出すことと、より広範なコミュニティとの透明性を維持することの間の良い妥協点であると考えています。

いつものように、バグレポート、質問、一般的なフィードバックは、issue trackerに送信できます。

React 18 Alphaを今すぐ試す方法

新しいアルファ版は、@alphaタグを使用してnpmに定期的に公開されます。これらのリリースは、メインリポジトリへの最新のコミットを使用してビルドされます。機能またはバグ修正がマージされると、次の平日にアルファ版に表示されます。

アルファリリース間には、重大な動作またはAPIの変更がある可能性があります。 アルファリリースは、ユーザー向けの運用アプリケーションには推奨されないことを覚えておいてください。

React 18のリリース予定

具体的なリリース日は決まっていませんが、React 18がほとんどの本番アプリケーションで使用できるようになるには、数か月のフィードバックとイテレーションが必要になると予想しています。

  • ライブラリアルファ版:本日利用可能
  • パブリックベータ版:少なくとも数か月
  • リリース候補(RC):ベータ版から少なくとも数週間後
  • 一般公開:RCから少なくとも数週間後

リリース予定のタイムラインの詳細については、ワーキンググループで入手できます。公開リリースが近づいたら、このブログで最新情報を掲載します。