Skip to content

Commit

Permalink
Translate four reactdom/server render methods
Browse files Browse the repository at this point in the history
  • Loading branch information
smikitky committed Aug 21, 2023
1 parent 425999b commit 7015596
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 92 deletions.
36 changes: 18 additions & 18 deletions src/content/reference/react-dom/server/renderToNodeStream.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ title: renderToNodeStream

<Deprecated>

This API will be removed in a future major version of React. Use [`renderToPipeableStream`](/reference/react-dom/server/renderToPipeableStream) instead.
この API は、将来の React のメジャーバージョンで削除されます。代わりに [`renderToPipeableStream`](/reference/react-dom/server/renderToPipeableStream) を使用してください。

</Deprecated>

<Intro>

`renderToNodeStream` renders a React tree to a [Node.js Readable Stream.](https://nodejs.org/api/stream.html#readable-streams)
`renderToNodeStream` は、React のツリーを [Node.js Readable ストリーム](https://nodejs.org/api/stream.html#readable-streams)にレンダーします。

```js
const stream = renderToNodeStream(reactNode)
Expand All @@ -22,11 +22,11 @@ const stream = renderToNodeStream(reactNode)

---

## Reference {/*reference*/}
## リファレンス {/*reference*/}

### `renderToNodeStream(reactNode)` {/*rendertonodestream*/}

On the server, call `renderToNodeStream` to get a [Node.js Readable Stream](https://nodejs.org/api/stream.html#readable-streams) which you can pipe into the response.
サーバ上において、`renderToNodeStream` を呼び出して、レスポンスにパイプすることができる [Node.js Readable ストリーム](https://nodejs.org/api/stream.html#readable-streams)を取得します。

```js
import { renderToNodeStream } from 'react-dom/server';
Expand All @@ -35,33 +35,33 @@ const stream = renderToNodeStream(<App />);
stream.pipe(response);
```

On the client, call [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) to make the server-generated HTML interactive.
クライアント側では、このようにサーバ生成された HTML を操作可能にするために [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) を用います。

[See more examples below.](#usage)
[更に例を見る](#usage)

#### Parameters {/*parameters*/}
#### 引数 {/*parameters*/}

* `reactNode`: A React node you want to render to HTML. For example, a JSX element like `<App />`.
* `reactNode`: HTML にレンダーしたい React ノード。例えば、`<App />` のような JSX 要素。

#### Returns {/*returns*/}
#### 返り値 {/*returns*/}

A [Node.js Readable Stream](https://nodejs.org/api/stream.html#readable-streams) that outputs an HTML string.
HTML 文字列を出力する [Node.js Readable ストリーム](https://nodejs.org/api/stream.html#readable-streams)

#### Caveats {/*caveats*/}
#### 注意点 {/*caveats*/}

* This method will wait for all [Suspense boundaries](/reference/react/Suspense) to complete before returning any output.
* このメソッドは、すべての[サスペンスバウンダリ](/reference/react/Suspense)が完了するまで、出力を返さず待機します。

* As of React 18, this method buffers all of its output, so it doesn't actually provide any streaming benefits. This is why it's recommended that you migrate to [`renderToPipeableStream`](/reference/react-dom/server/renderToPipeableStream) instead.
* React 18 時点において、このメソッドはすべての出力をバッファリングするため、実際にはストリームを使用する利点が得られません。これが、代わりに [`renderToPipeableStream`](/reference/react-dom/server/renderToPipeableStream) に移行することが推奨される理由です。

* The returned stream is a byte stream encoded in utf-8. If you need a stream in another encoding, take a look at a project like [iconv-lite](https://www.npmjs.com/package/iconv-lite), which provides transform streams for transcoding text.
* 返されるストリームは、utf-8 でエンコードされたバイトストリームです。別のエンコーディングのストリームが必要な場合は、テキストのトランスコーディング用の変換ストリームを提供する [iconv-lite](https://www.npmjs.com/package/iconv-lite) のようなプロジェクトを参照してください。

---

## Usage {/*usage*/}
## 使用法 {/*usage*/}

### Rendering a React tree as HTML to a Node.js Readable Stream {/*rendering-a-react-tree-as-html-to-a-nodejs-readable-stream*/}
### React ツリーを HTML として Node.js Readable ストリームにレンダーする {/*rendering-a-react-tree-as-html-to-a-nodejs-readable-stream*/}

Call `renderToNodeStream` to get a [Node.js Readable Stream](https://nodejs.org/api/stream.html#readable-streams) which you can pipe to your server response:
`renderToNodeStream` を呼び出して、サーバのレスポンスにパイプできる [Node.js Readable ストリーム](https://nodejs.org/api/stream.html#readable-streams)を取得します。

```js {5-6}
import { renderToNodeStream } from 'react-dom/server';
Expand All @@ -73,4 +73,4 @@ app.use('/', (request, response) => {
});
```

The stream will produce the initial non-interactive HTML output of your React components. On the client, you will need to call [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) to *hydrate* that server-generated HTML and make it interactive.
このストリームは、React コンポーネントの非インタラクティブな初期 HTML 出力を生成します。クライアント側では、サーバが生成した HTML *ハイドレーション*を行い操作可能にするために、[`hydrateRoot`](/reference/react-dom/client/hydrateRoot) を呼び出す必要があります。
38 changes: 19 additions & 19 deletions src/content/reference/react-dom/server/renderToStaticMarkup.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: renderToStaticMarkup

<Intro>

`renderToStaticMarkup` renders a non-interactive React tree to an HTML string.
`renderToStaticMarkup` は、非インタラクティブな React ツリーを HTML 文字列にレンダーします。

```js
const html = renderToStaticMarkup(reactNode)
Expand All @@ -16,45 +16,45 @@ const html = renderToStaticMarkup(reactNode)

---

## Reference {/*reference*/}
## リファレンス {/*reference*/}

### `renderToStaticMarkup(reactNode)` {/*rendertostaticmarkup*/}

On the server, call `renderToStaticMarkup` to render your app to HTML.
サーバ上で、`renderToStaticMarkup` を呼び出してアプリを HTML にレンダーします。

```js
import { renderToStaticMarkup } from 'react-dom/server';

const html = renderToStaticMarkup(<Page />);
```

It will produce non-interactive HTML output of your React components.
これにより、React コンポーネントの非インタラクティブな HTML 出力が生成されます。

[See more examples below.](#usage)
[さらに例を見る](#usage)

#### Parameters {/*parameters*/}
#### 引数 {/*parameters*/}

* `reactNode`: A React node you want to render to HTML. For example, a JSX node like `<Page />`.
* `reactNode`: HTML にレンダーしたい React ノード。例えば、`<Page />` のような JSX ノード。

#### Returns {/*returns*/}
#### 返り値 {/*returns*/}

An HTML string.
HTML 文字列。

#### Caveats {/*caveats*/}
#### 注意点 {/*caveats*/}

* `renderToStaticMarkup` output cannot be hydrated.
* `renderToStaticMarkup` の出力に対してハイドレーションは行えません。

* `renderToStaticMarkup` has limited Suspense support. If a component suspends, `renderToStaticMarkup` immediately sends its fallback as HTML.
* `renderToStaticMarkup` のサスペンスに対するサポートは限定的です。コンポーネントがサスペンドすると、`renderToStaticMarkup` はそのフォールバックを HTML として直ちに送信します。

* `renderToStaticMarkup` works in the browser, but using it in the client code is not recommended. If you need to render a component to HTML in the browser, [get the HTML by rendering it into a DOM node.](/reference/react-dom/server/renderToString#removing-rendertostring-from-the-client-code)
* `renderToStaticMarkup` はブラウザで動作しますが、クライアントコードでの使用は推奨されません。ブラウザでコンポーネントを HTML にレンダーする必要がある場合は、[DOM ノードにレンダーしてその HTML を取得してください](/reference/react-dom/server/renderToString#removing-rendertostring-from-the-client-code)

---

## Usage {/*usage*/}
## 使用法 {/*usage*/}

### Rendering a non-interactive React tree as HTML to a string {/*rendering-a-non-interactive-react-tree-as-html-to-a-string*/}
### 非インタラクティブな React ツリーを HTML として文字列にレンダーする {/*rendering-a-non-interactive-react-tree-as-html-to-a-string*/}

Call `renderToStaticMarkup` to render your app to an HTML string which you can send with your server response:
`renderToStaticMarkup` を呼び出して、アプリをサーバのレスポンスとして送信できる HTML 文字列にレンダーします。

```js {5-6}
import { renderToStaticMarkup } from 'react-dom/server';
Expand All @@ -66,12 +66,12 @@ app.use('/', (request, response) => {
});
```

This will produce the initial non-interactive HTML output of your React components.
これにより、React コンポーネントの非インタラクティブな初期 HTML 出力が生成されます。

<Pitfall>

This method renders **non-interactive HTML that cannot be hydrated.** This is useful if you want to use React as a simple static page generator, or if you're rendering completely static content like emails.
このメソッドは、**ハイドレーションができない非インタラクティブな HTML をレンダーします**。これは、React をシンプルな静的ページジェネレータとして使用したい場合や、メールのような完全に静的なコンテンツをレンダーする場合に有用です。

Interactive apps should use [`renderToString`](/reference/react-dom/server/renderToString) on the server and [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) on the client.
インタラクティブなアプリでは、サーバ上で [`renderToString`](/reference/react-dom/server/renderToString) を、クライアント上で [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) を使用すべきです。

</Pitfall>
40 changes: 20 additions & 20 deletions src/content/reference/react-dom/server/renderToStaticNodeStream.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: renderToStaticNodeStream

<Intro>

`renderToStaticNodeStream` renders a non-interactive React tree to a [Node.js Readable Stream.](https://nodejs.org/api/stream.html#readable-streams)
`renderToStaticNodeStream` は、非インタラクティブな React ツリーを [Node.js Readable ストリーム](https://nodejs.org/api/stream.html#readable-streams) にレンダーします。

```js
const stream = renderToStaticNodeStream(reactNode)
Expand All @@ -16,11 +16,11 @@ const stream = renderToStaticNodeStream(reactNode)

---

## Reference {/*reference*/}
## リファレンス {/*reference*/}

### `renderToStaticNodeStream(reactNode)` {/*rendertostaticnodestream*/}

On the server, call `renderToStaticNodeStream` to get a [Node.js Readable Stream](https://nodejs.org/api/stream.html#readable-streams).
サーバ上において、`renderToStaticNodeStream` を呼び出して [Node.js Readable ストリーム](https://nodejs.org/api/stream.html#readable-streams)を取得します。

```js
import { renderToStaticNodeStream } from 'react-dom/server';
Expand All @@ -29,35 +29,35 @@ const stream = renderToStaticNodeStream(<Page />);
stream.pipe(response);
```

[See more examples below.](#usage)
[さらに例を見る](#usage)

The stream will produce non-interactive HTML output of your React components.
このストリームは、React コンポーネントの非インタラクティブな HTML 出力を生成します。

#### Parameters {/*parameters*/}
#### 引数 {/*parameters*/}

* `reactNode`: A React node you want to render to HTML. For example, a JSX element like `<Page />`.
* `reactNode`: HTML にレンダーしたい React ノード。例えば、`<Page />` のような JSX 要素。

#### Returns {/*returns*/}
#### 返り値 {/*returns*/}

A [Node.js Readable Stream](https://nodejs.org/api/stream.html#readable-streams) that outputs an HTML string. The resulting HTML can't be hydrated on the client.
HTML 文字列を出力する [Node.js Readable ストリーム](https://nodejs.org/api/stream.html#readable-streams)。結果として得られる HTML はクライアント上でハイドレーションすることはできません。

#### Caveats {/*caveats*/}
#### 注意点 {/*caveats*/}

* `renderToStaticNodeStream` output cannot be hydrated.
* `renderToStaticNodeStream` の出力はハイドレーションすることができません。

* This method will wait for all [Suspense boundaries](/reference/react/Suspense) to complete before returning any output.
* このメソッドは、すべての[サスペンスバウンダリ](/reference/react/Suspense)が完了するまで出力を返さずに待機します。

* As of React 18, this method buffers all of its output, so it doesn't actually provide any streaming benefits.
* React 18 時点において、このメソッドはすべての出力をバッファリングするため、実際にはストリームを使用する利点が得られません。

* The returned stream is a byte stream encoded in utf-8. If you need a stream in another encoding, take a look at a project like [iconv-lite](https://www.npmjs.com/package/iconv-lite), which provides transform streams for transcoding text.
* 返されるストリームは utf-8 でエンコードされたバイトストリームです。他のエンコーディングのストリームが必要な場合は、テキストのトランスコーディング用の変換ストリームを提供する [iconv-lite](https://www.npmjs.com/package/iconv-lite) のようなプロジェクトを参照してください。

---

## Usage {/*usage*/}
## 使用法 {/*usage*/}

### Rendering a React tree as static HTML to a Node.js Readable Stream {/*rendering-a-react-tree-as-static-html-to-a-nodejs-readable-stream*/}
### React ツリーを静的 HTML として Node.js Readable ストリームにレンダーする {/*rendering-a-react-tree-as-static-html-to-a-nodejs-readable-stream*/}

Call `renderToStaticNodeStream` to get a [Node.js Readable Stream](https://nodejs.org/api/stream.html#readable-streams) which you can pipe to your server response:
`renderToStaticNodeStream` を呼び出して、サーバのレスポンスにパイプできる [Node.js Readable ストリーム](https://nodejs.org/api/stream.html#readable-streams)を取得します。

```js {5-6}
import { renderToStaticNodeStream } from 'react-dom/server';
Expand All @@ -69,12 +69,12 @@ app.use('/', (request, response) => {
});
```

The stream will produce the initial non-interactive HTML output of your React components.
このストリームは、React コンポーネントの非インタラクティブな初期 HTML 出力を生成します。

<Pitfall>

This method renders **non-interactive HTML that cannot be hydrated.** This is useful if you want to use React as a simple static page generator, or if you're rendering completely static content like emails.
このメソッドは、**ハイドレーションができない非インタラクティブな HTML をレンダーします**。これは、React をシンプルな静的ページジェネレータとして使用したい場合や、メールのような完全に静的なコンテンツをレンダーする場合に有用です。

Interactive apps should use [`renderToPipeableStream`](/reference/react-dom/server/renderToPipeableStream) on the server and [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) on the client.
インタラクティブなアプリでは、サーバ上で [`renderToPipeableStream`](/reference/react-dom/server/renderToPipeableStream) を、クライアント上で [`hydrateRoot`](/reference/react-dom/client/hydrateRoot) を使用すべきです。

</Pitfall>
Loading

0 comments on commit 7015596

Please sign in to comment.