Skip to content

Commit 91bb5b7

Browse files
committed
微修正
1 parent f96bd9f commit 91bb5b7

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/content/reference/react/use-client.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ title: "'use client'"
1111

1212
<Intro>
1313

14-
`'use client'` により、ソースファイルがクライアント上で実行されるコンポーネントが書かれたものである、とマークします
14+
`'use client'` でソースファイルをマークすることにより、ファイル内のコンポーネントがクライアント上で実行されることを示します
1515

1616
</Intro>
1717

@@ -34,7 +34,7 @@ export default function RichTextEditor(props) {
3434
// ...
3535
```
3636
37-
`'use client'` がマークされたファイルがサーバコンポーネントからインポートされると、[互換性のあるバンドラ](/learn/start-a-new-react-project#bleeding-edge-react-frameworks)は、そのインポートをサーバ専用のコードとクライアントコードとの間の「切り離し点 (cut-off point)」として扱います。モジュールグラフでこの点およびこの点より下側にあるコンポーネントは、[`useState`](/reference/react/useState) のようなクライアント専用の React 機能を使用できます。
37+
`'use client'` とマークされたファイルがサーバコンポーネントからインポートされると、[互換性のあるバンドラ](/learn/start-a-new-react-project#bleeding-edge-react-frameworks)は、当該インポートをサーバ専用コードとクライアントコードとの間の「切り離しポイント」として扱います。モジュールグラフでこのポイントおよび下側にあるコンポーネントは、[`useState`](/reference/react/useState) のようなクライアント専用の React 機能を使用できます。
3838
3939
#### 注意点 {/*caveats*/}
4040
@@ -44,7 +44,7 @@ export default function RichTextEditor(props) {
4444
* `'use client'` ファイルのすべてのコード、およびそれが(直接的にまたは間接的に)インポートするすべてのモジュールはクライアントモジュールグラフの一部となるため、ブラウザが表示するためにはクライアントに送信され、クライアントで実行される必要があります。クライアントでのバンドルサイズを減らし、サーバ機能を最大限に活用するためには、可能な限りツリーの下部に state(および `'use client'` ディレクティブ)を移動し、レンダーされたサーバコンポーネントを [children として](/learn/passing-props-to-a-component#passing-jsx-as-children)クライアントコンポーネントに渡します。
4545
* props はサーバとクライアントの境界を越えてシリアライズされるため、これらのディレクティブの配置の仕方がクライアントに送信されるデータ量に影響を与える可能性があります。必要以上に大きなデータ構造を避けてください。
4646
* サーバ専用機能もクライアント専用機能も使用しないコンポーネント(例:`<MarkdownRenderer>`)は、一般的に `'use client'` でマークすべきではありません。マークしないことにより、サーバコンポーネントから使用されるときにはサーバ上でのみレンダーされ、クライアントコンポーネントから使用されるときにはクライアントバンドルに含まれるようになります。
47-
* npm に公開されるライブラリは、クライアント専用の React 機能を使用しており、シリアライズ可能な props でレンダーできる React コンポーネントに、`'use client'` を含めるべきです。これにより、それらのコンポーネントをサーバコンポーネントからインポートしてレンダーすることが可能になります。さもないと、ユーザはライブラリコンポーネントを自分で `'use client'` ファイルにラップしなければなりません。これは面倒ですし、ライブラリが後でロジックをサーバに移動できなくなってしまいます。事前バンドル済のファイルを npm に公開する際は、`'use client'` となっているソースファイルは `'use client'` でマークされたバンドルに含まれるようにし、サーバ上で直接使用できるエクスポートを含むバンドルとは別になるようにしてください
47+
* npm に公開されるライブラリは、シリアライズ可能な props でレンダーでき、クライアント専用の React 機能を使用する React コンポーネントに、`'use client'` を含めるべきです。これにより、それらのコンポーネントをサーバコンポーネントからインポートしてレンダーすることが可能になります。さもないと、ユーザはライブラリコンポーネントを自分で `'use client'` ファイルにラップしなければなりません。これは面倒ですし、ライブラリが後でロジックをサーバに移動できなくなってしまいます。事前バンドル済のファイルを npm に公開する際は、`'use client'` となっているソースファイルは `'use client'` でマークされたバンドルに含まれるようにし、サーバ上で直接使用できるエクスポートを含んだバンドルとは別になるようにしてください
4848
* クライアントコンポーネントは、今後もサーバサイドレンダリング (server-side rendering, SSR) やビルド時の静的サイト生成 (static site generation, SSG) の一部としては実行されます。これらは、コンポーネントの初期レンダー出力を HTML に変換し、JavaScript バンドルがダウンロードされる前に表示を行えるようにするために使えます。しかし、データベースから直接読み取るといったサーバ専用機能は使用できません。
4949
* `'use client'` のようなディレクティブは、ファイルの冒頭部分、あらゆるインポート文や他のコードの上になければなりません(ただしディレクティブの上にコメントは記載できます)。シングルクォートまたはダブルクォートで書かれていなければならず、バックティックは使えません。(`'use xyz'` というディレクティブ形式は `useXyz()` というフックの命名規則に多少似ていますが、これは偶然です。)
5050

src/content/reference/react/use-server.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ title: "'use server'"
2525

2626
### `'use server'` {/*use-server*/}
2727

28-
非同期関数の一番最初の部分に `'use server';` を追加することで、その関数がクライアントによって実行できることをマークします
28+
非同期 (async) 関数の冒頭に `'use server';` を追加することで、その関数がクライアントから実行できることをマークします
2929

3030
```js
3131
async function addToCart(data) {
@@ -36,13 +36,13 @@ async function addToCart(data) {
3636
// <ProductDetailPage addToCart={addToCart} />
3737
```
3838

39-
このような関数は、クライアントに渡すことができます。この関数がクライアント側で呼び出されると、渡された引数のシリアライズされたコピーを含んだネットワークリクエストをサーバに送信します。サーバ関数が値を返す場合、その値はシリアライズされてクライアントに返されます
39+
このような関数は、クライアントに渡すことができます。この関数がクライアント側で呼び出されると、渡された引数がシリアライズされ、それを含んだネットワークリクエストをサーバに送信します。このサーバ関数が値を返す場合、シリアライズされてクライアントに返されます
4040

41-
または、ファイルの最上部に `'use server';` を追加して、そのファイル内のすべてのエクスポートが、クライアントコンポーネントファイルを含む任意の場所で使用できる非同期サーバ関数であるとマークします
41+
または、ファイルの最上部に `'use server';` を追加すると、そのファイル内のすべてのエクスポートが、クライアントコンポーネントファイルを含むあらゆる場所で使用できる非同期サーバ関数である、とマークします
4242

4343
#### 注意点 {/*caveats*/}
4444

45-
* `'use server'` でマークされた関数に渡されるパラメータはクライアントが完全に制御できます。セキュリティのため、それらを常に信頼できない入力として扱い、適切に引数のバリデーションやエスケープを行うことを忘れないでください
45+
* `'use server'` でマークされた関数に渡される引数はクライアントで完全に制御可能です。セキュリティのため、引数を常に信頼できない入力として扱い、適切にバリデーションやエスケープを行うことを忘れないでください
4646
* クライアント側とサーバ側のコードを同じファイルに混在させることによる混乱を避けるため、`'use server'` はサーバ側のファイルでのみ使用できます。結果として得られる関数は、props を通じてクライアントコンポーネントに渡すことができます。
4747
* 内部で用いられるネットワーク呼び出しは常に非同期であるため、`'use server'` は非同期関数でのみ使用できます。
4848
* `'use server'` のようなディレクティブは、関数やファイルの冒頭、他のコード(インポートを含む)よりも上になければなりません(ただしディレクティブの上にコメントは記載できます)。シングルクォートまたはダブルクォートで書かれていなければならず、バックティックは使えません。(`'use xyz'` というディレクティブ形式は `useXyz()` というフックの命名規則に多少似ていますが、これは偶然です。)

0 commit comments

Comments
 (0)