Skip to content

Commit ce3bf60

Browse files
authored
docs(ja): translate features/live-components into japanese (#343)
<!-- What is this PR solving? Write a clear description or reference the issues it solves (e.g. `fixes #123`). What other alternatives have you explored? Are there any parts you think require more attention from reviewers? --> <!---------------------------------------------------------------------- Before creating the pull request, please make sure you do the following: - Read the Contributing Guidelines at https://github.com/lazarv/react-server/blob/main/CONTRIBUTING.md. - Check that there isn't already a PR that solves the problem the same way. If you find a duplicate, please help us reviewing it. - Update the corresponding documentation if needed. - Include relevant tests that fail without this PR but pass with it. Thank you for contributing to @lazarv/react-server! -----------------------------------------------------------------------> This Pull Request to add Japanese documentation.This is a documentation-only change with no impact on functionality
1 parent 639d8ef commit ce3bf60

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
title: ライブコンポーネント
3+
category: Features
4+
order: 13
5+
---
6+
7+
import Link from "../../../../components/Link.jsx";
8+
9+
# ライブコンポーネント
10+
11+
ライブコンポーネントは、`@lazarv/react-server` の強力な機能であり、ページ全体を再読み込みすることなくリアルタイムで更新できるインタラクティブなコンポーネントを作成できます。これはチャットアプリケーション、ダッシュボード、コラボレーションツールなどの動的なコンテンツ更新を必要とするアプリケーションで特に有用です。
12+
13+
> **注記:** ライブコンポーネントは `@lazarv/react-server` とシームレスに連携するよう設計されており、React Server Components の力を活用してスムーズで効率的なユーザー体験を提供します。ただし、これらはまだ実験的な機能であり、本番環境での使用には注意が必要です。
14+
15+
<Link name="why-live-components">
16+
## なぜライブコンポーネントなのか?
17+
</Link>
18+
19+
ライブコンポーネントにはいくつかの利点があります。
20+
- **リアルタイム更新:** ライブコンポーネントはデータの変更に応じて状態を更新し再レンダリングするため、シームレスなユーザー体験を提供します。
21+
- **低遅延:** ページ全体の再読み込みを回避することで、ライブコンポーネントは更新をより迅速に提供し、アプリケーションの応答性を向上させます。
22+
- **ユーザー体験の向上:** ユーザーは中断することなくアプリケーションと対話できるため、よりスムーズで没入感のある体験が実現します。
23+
- **リモートコンポーネント:** ライブコンポーネントはリモートコンポーネントと連携して使用でき、リモートソースからコンポーネントをロード・レンダリングしながらリアルタイム更新の利点を維持できます。
24+
25+
<Link name="how-to-implement-live-components">
26+
## ライブコンポーネントの実装方法
27+
</Link>
28+
29+
アプリケーションにライブコンポーネントを実装するには、コンポーネント内で `"use live"` ディレクティブを使用します。このディレクティブによりコンポーネントはライブ状態となり、リアルタイムで更新が可能になります。コンポーネントは非同期ジェネレータ関数で実装し、React Server Componentとしてコンポーネントの更新をyieldする必要があります。
30+
31+
以下にライブコンポーネントのシンプルな使用例を示します。
32+
33+
```jsx
34+
"use live";
35+
36+
export default async function* LiveComponent() {
37+
while (true) {
38+
yield <div>Current time: {new Date().toLocaleTimeString()}</div>;
39+
await new Promise((resolve) => setTimeout(resolve, 1000));
40+
}
41+
}
42+
```
43+
44+
ランタイムはこのコンポーネント用に特別なアウトレットを作成し、リアルタイムでの更新を可能にします。コンポーネントは毎秒再レンダリングされ、ページ全体の再読み込みやユーザーの操作を必要とせずに現在の時刻を表示します。
45+
46+
アプリケーションでライブコンポーネントを使用するには、他のReactコンポーネントと同様にインポートしてレンダリングします。
47+
48+
```jsx
49+
import LiveComponent from "./LiveComponent";
50+
51+
export default function Home() {
52+
return (
53+
<div>
54+
<h1>Live Component Example</h1>
55+
<LiveComponent />
56+
</div>
57+
);
58+
}
59+
```
60+
61+
これによりページ上にライブコンポーネントが表示され、毎秒更新されて現在の時刻が表示されます。
62+
63+
ライブコンポーネントは、サーバ関数やクライアントコンポーネントなど `@lazarv/react-server` の他の機能と組み合わせて使用することも可能です。これによりユーザーの入力やデータ変更にリアルタイムで応答する、リッチでインタラクティブなアプリケーションを作成できます。
64+
65+
各ライブコンポーネントインスタンスは独自のコンテキストで実行されるため、同一ページ上に同一ライブコンポーネントの複数インスタンスを配置でき、それぞれが独自の状態と更新を保持します。これにより複数のライブ更新を同時に処理できる複雑なインタラクティブUIを作成できます。
66+
67+
> **注記:** ライブコンポーネント機能の最新情報にご期待ください。`"use live: broadcast"` がまもなく提供開始予定です。これにより複数のライブコンポーネントへの更新を一括で配信できるようになり、アプリケーション全体の状態と更新の管理が容易になります。
68+
69+
<Link name="live-io">
70+
## Live I/O
71+
</Link>
72+
73+
ライブコンポーネントは、サーバーとクライアント間のWebSocket接続を確立するために、内部で[socket.io](https://socket.io/)を利用しています。これによりサーバーはクライアントにリアルタイムで更新をプッシュでき、ライブコンポーネントはページ全体を再読み込みすることなく更新が可能になります。
74+
75+
`"use live"` ディレクティブを使用すると、ランタイムが自動的に必要なWebSocket接続を設定し、サーバーとクライアント間の通信を管理します。これにより基盤となる実装の詳細を気にすることなく、ライブコンポーネントの構築に集中できます。
76+
77+
> **注記:** ライブコンポーネントはWebSocketsを基盤として構築されていますが、将来的にはランタイムがリアルタイム通信のための他のプロトコル(サーバー送信イベント(SSE)やHTTP/2プッシュなど)をサポートする可能性があります。これにより、アプリケーションの要件に最適なプロトコルを選択でき、異なるブラウザやデバイス間で最適なパフォーマンスと互換性を確保できます。

0 commit comments

Comments
 (0)