@@ -8,7 +8,7 @@ March 29, 2022 by [The React Team](/community/team)
8
8
9
9
<Intro >
10
10
11
- React 18 が npm で利用可能になりました! 前回の投稿にて、[ アプリを React 18 にアップグレードする] ( /blog/2022/03/08/react-18-upgrade-guide.html ) ためのステップバイステップガイドを共有しました。この投稿では、React 18 の新機能や、将来に向けての展望をお伝えします。
11
+ React 18 が npm で利用可能になりました! 前回の投稿にて、[ アプリを React 18 にアップグレードする] ( /blog/2022/03/08/react-18-upgrade-guide ) ためのステップバイステップガイドを共有しました。この投稿では、React 18 の新機能や、将来に向けての展望をお伝えします。
12
12
13
13
</Intro >
14
14
@@ -18,7 +18,7 @@ React 18 が npm で利用可能になりました! 前回の投稿にて、[
18
18
19
19
React 18 の機能の多くが基盤としているのは新たに加わった並行レンダラ (concurrent renderer) であり、これが強力な新機能群を実現するために裏で働くようになっています。React の並行処理機能はオプトインであり、並行処理機能を使う場合にのみ有効になるものですが、これは皆さんのアプリ作成方法に大きな影響を与えるものであると思っています。
20
20
21
- 我々は React で並行処理をサポートするために何年ものあいだ研究開発を重ねてきており、特に既存ユーザが段階的に採用できる方法を提供することに関しては注意を払ってきました。昨年の夏に [ React 18 ワーキンググループ] ( https://reactjs.org/ blog/2021/06/08/the-plan-for-react-18.html ) を作成し、エキスパートやコミュニティからフィードバックを集め、React のエコシステム全体がスムースにアップグレードできるようにしてきました。
21
+ 我々は React で並行処理をサポートするために何年ものあいだ研究開発を重ねてきており、特に既存ユーザが段階的に採用できる方法を提供することに関しては注意を払ってきました。昨年の夏に [ React 18 ワーキンググループ] ( / blog/2021/06/08/the-plan-for-react-18) を作成し、エキスパートやコミュニティからフィードバックを集め、React のエコシステム全体がスムースにアップグレードできるようにしてきました。
22
22
23
23
また、React Conf 2021 でも多くのことを共有してきました。
24
24
@@ -66,7 +66,7 @@ React 18 にアップグレード後、並行処理機能をすぐに使い始
66
66
67
67
ライブラリがアップグレードされて並行処理機能対応になるまでには、多少時間がかかるかもしれません。並行処理機能をライブラリが活用しやすくするために新しい API を提供しています。当面は、React エコシステムが徐々に移行していくまで、ライブラリメンテナが作業するのをお待ちください。
68
68
69
- 詳細は、前回の投稿をご覧ください:[ React 18 アップグレードガイド] ( https://reactjs.org/ blog/2022/03/08/react-18-upgrade-guide.html ) .
69
+ 詳細は、前回の投稿をご覧ください:[ React 18 アップグレードガイド] ( / blog/2022/03/08/react-18-upgrade-guide) .
70
70
71
71
## データフレームワークにおけるサスペンス {/* suspense-in-data-frameworks* /}
72
72
@@ -179,7 +179,7 @@ React 18 におけるサスペンスはトランジション API と併用した
179
179
180
180
` createRoot ` と ` hydrateRoot ` のいずれも、` onRecoverableError ` という新たなオプションを受け取るようになっており、レンダーあるいはハイドレーション中に起きたエラーから React が復帰した場合に通知を受けてログを残したい場合に利用できます。デフォルトでは React は [ ` reportError ` ] ( https://developer.mozilla.org/en-US/docs/Web/API/reportError ) か、古いブラウザの場合は ` console.error ` を利用します。
181
181
182
- [ React DOM Client のドキュメントはこちら] ( /docs /react-dom- client.html ) 。
182
+ [ React DOM Client のドキュメントはこちら] ( /reference /react-dom/ client ) 。
183
183
184
184
#### React DOM Server {/* react-dom-server* /}
185
185
@@ -190,7 +190,7 @@ React 18 におけるサスペンスはトランジション API と併用した
190
190
191
191
既存の ` renderToString ` メソッドは今後も動作しますが、推奨されません。
192
192
193
- [ React DOM Server のドキュメントはこちら] ( /docs /react-dom- server.html ) 。
193
+ [ React DOM Server のドキュメントはこちら] ( /reference /react-dom/ server ) 。
194
194
195
195
### Strict モードの新たな挙動 {/* new-strict-mode-behaviors* /}
196
196
@@ -223,7 +223,7 @@ React 18 の strict モードでは、開発時にコンポーネントがマウ
223
223
* 副作用の作成用コードの実行
224
224
```
225
225
226
- [ state 再利用可能性の保証についてのドキュメントはこちら] ( /docs/strict-mode.html#ensuring-reusable-state ) 。
226
+ [ state 再利用可能性の保証についてのドキュメントはこちら] ( /reference/react/StrictMode#fixing-bugs-found-by-re-running-effects-in-development ) 。
227
227
228
228
### 新たなフック {/* new-hooks* /}
229
229
@@ -233,35 +233,35 @@ React 18 の strict モードでは、開発時にコンポーネントがマウ
233
233
234
234
> 補足
235
235
>
236
- > ` useId ` は[ リスト内の key] ( /docs/ lists-and-keys.html#keys ) を作成するのに使うためのものでは** ありません** 。key はあなたのデータから作成されるべきです。
236
+ > ` useId ` は[ リスト内の key] ( /learn/rendering- lists#where-to-get-your-key ) を作成するのに使うためのものでは** ありません** 。key はあなたのデータから作成されるべきです。
237
237
238
238
#### useTransition {/* usetransition* /}
239
239
240
- ` useTransition ` と ` startTransition ` により、一部の更新は緊急性が低いということをマークできるようになります。その他の更新はデフォルトで緊急性が高いものとして扱われます。React は緊急性の高い更新(例えばテキスト入力の更新)が、緊急性の低い更新(例えば検索結果のリストのレンダー)を中断できるようになります。[ こちらのドキュメントを参照] ( /docs/hooks- reference.html#usetransition ) 。
240
+ ` useTransition ` と ` startTransition ` により、一部の更新は緊急性が低いということをマークできるようになります。その他の更新はデフォルトで緊急性が高いものとして扱われます。React は緊急性の高い更新(例えばテキスト入力の更新)が、緊急性の低い更新(例えば検索結果のリストのレンダー)を中断できるようになります。[ こちらのドキュメントを参照] ( /reference/react/useTransition ) 。
241
241
242
242
#### useDeferredValue {/* usedeferredvalue* /}
243
243
244
- ` useDeferredValue ` により、ツリー内の緊急性の低い更新の再レンダーを遅延させることができます。デバウンス (debounce) に似ていますが、それと比べていくつかの利点があります。遅延時間が固定でないため、最初のレンダーが画面に反映された時点ですぐに遅延されていた方のレンダーを始められるのです。また遅延されたレンダーは中断可能であり、ユーザインプットをブロックしません。[ こちらのドキュメントを参照] ( /docs/hooks- reference.html#usedeferredvalue ) 。
244
+ ` useDeferredValue ` により、ツリー内の緊急性の低い更新の再レンダーを遅延させることができます。デバウンス (debounce) に似ていますが、それと比べていくつかの利点があります。遅延時間が固定でないため、最初のレンダーが画面に反映された時点ですぐに遅延されていた方のレンダーを始められるのです。また遅延されたレンダーは中断可能であり、ユーザインプットをブロックしません。[ こちらのドキュメントを参照] ( /reference/react/useDeferredValue ) 。
245
245
246
246
#### useSyncExternalStore {/* usesyncexternalstore* /}
247
247
248
- ` useSyncExternalStore ` は、外部ストアへの更新を強制的に同期的に行うことで、外部ストアが並行読み取りを行えるようにします。これにより外部のデータソースに購読する際に ` useEffect ` を使う必要性がなくなるので、React 外部の状態を扱うあらゆるライブラリにとって推奨されるものです。[ こちらのドキュメントを参照] ( /docs/hooks- reference.html#usesyncexternalstore ) 。
248
+ ` useSyncExternalStore ` は、外部ストアへの更新を強制的に同期的に行うことで、外部ストアが並行読み取りを行えるようにします。これにより外部のデータソースに購読する際に ` useEffect ` を使う必要性がなくなるので、React 外部の状態を扱うあらゆるライブラリにとって推奨されるものです。[ こちらのドキュメントを参照] ( /reference/react/useSyncExternalStore ) 。
249
249
250
250
> 補足
251
251
>
252
252
> ` useSyncExternalStore ` はアプリケーションコードではなくライブラリで使用されることを意図しています。
253
253
254
254
#### useInsertionEffect {/* useinsertioneffect* /}
255
255
256
- ` useInsertionEffect ` は、CSS-in-JS ライブラリがレンダー時にスタイルを注入する際のパフォーマンス上の問題に対処できるようにするための新しいフックです。すでに CSS-in-JS ライブラリを構築しているのでなければ、これを使うことはまずないでしょう。このフックは、DOM が書き換えられた後、レイアウト副作用 (layout effect) が新しいレイアウトを読み込む前に実行されます。これにより React 17 およびそれ以前から既に存在した問題が解決されますが、React 18 では並行レンダー中にブラウザに処理が渡り、そこでレイアウトが再計算される可能性があるため、より重要です。[ こちらのドキュメントを参照] ( /docs/hooks- reference.html#useinsertioneffect ) 。
256
+ ` useInsertionEffect ` は、CSS-in-JS ライブラリがレンダー時にスタイルを注入する際のパフォーマンス上の問題に対処できるようにするための新しいフックです。すでに CSS-in-JS ライブラリを構築しているのでなければ、これを使うことはまずないでしょう。このフックは、DOM が書き換えられた後、レイアウト副作用 (layout effect) が新しいレイアウトを読み込む前に実行されます。これにより React 17 およびそれ以前から既に存在した問題が解決されますが、React 18 では並行レンダー中にブラウザに処理が渡り、そこでレイアウトが再計算される可能性があるため、より重要です。[ こちらのドキュメントを参照] ( /reference/react/useInsertionEffect ) 。
257
257
258
258
> 補足
259
259
>
260
260
> ` useInsertionEffect ` はアプリケーションコードではなくライブラリで使用されることを意図しています。
261
261
262
262
## アップグレード方法 {/* how-to-upgrade* /}
263
263
264
- ステップバイステップのガイド、および破壊的変更・注目すべき変更の全リストについては [ React 18 アップグレードガイド] ( https://reactjs.org/ blog/2022/03/08/react-18-upgrade-guide.html ) を参照してください。
264
+ ステップバイステップのガイド、および破壊的変更・注目すべき変更の全リストについては [ React 18 アップグレードガイド] ( / blog/2022/03/08/react-18-upgrade-guide) を参照してください。
265
265
266
266
## Changelog {/* changelog* /}
267
267
0 commit comments