From 5264b5872801e869acb1ded2994cd3150ec3cad2 Mon Sep 17 00:00:00 2001
From: "translate-react-bot[bot]"
<251169733+translate-react-bot[bot]@users.noreply.github.com>
Date: Wed, 4 Feb 2026 15:15:14 +0000
Subject: [PATCH 1/3] =?UTF-8?q?docs:=20translate=20`server-components.md`?=
=?UTF-8?q?=20to=20=D0=A0=D1=83=D1=81=D1=81=D0=BA=D0=B8=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../reference/rsc/server-components.md | 98 +++++++++----------
1 file changed, 49 insertions(+), 49 deletions(-)
diff --git a/src/content/reference/rsc/server-components.md b/src/content/reference/rsc/server-components.md
index 9e6ab11eb4..27ab3288c6 100644
--- a/src/content/reference/rsc/server-components.md
+++ b/src/content/reference/rsc/server-components.md
@@ -4,34 +4,34 @@ title: Server Components
-Server Components are for use in [React Server Components](/learn/start-a-new-react-project#bleeding-edge-react-frameworks).
+Server Components предназначены для использования в [React Server Components](/learn/start-a-new-react-project#bleeding-edge-react-frameworks).
-Server Components are a new type of Component that renders ahead of time, before bundling, in an environment separate from your client app or SSR server.
+Server Components — это новый тип компонентов, которые рендерятся заранее, до сборки бандла, в среде, отдельной от вашего клиентского приложения или SSR-сервера.
-This separate environment is the "server" in React Server Components. Server Components can run once at build time on your CI server, or they can be run for each request using a web server.
+Эта отдельная среда — «сервер» в React Server Components. Server Components могут запускаться один раз во время сборки на вашем CI-сервере или для каждого запроса с помощью веб-сервера.
-#### How do I build support for Server Components? {/*how-do-i-build-support-for-server-components*/}
+#### Как мне реализовать поддержку Server Components? {/*how-do-i-build-support-for-server-components*/}
-While React Server Components in React 19 are stable and will not break between minor versions, the underlying APIs used to implement a React Server Components bundler or framework do not follow semver and may break between minors in React 19.x.
+Хотя React Server Components в React 19 стабильны и не будут ломаться между минорными версиями, базовые API, используемые для реализации бандлера или фреймворка React Server Components, не следуют semver и могут ломаться между минорными версиями в React 19.x.
-To support React Server Components as a bundler or framework, we recommend pinning to a specific React version, or using the Canary release. We will continue working with bundlers and frameworks to stabilize the APIs used to implement React Server Components in the future.
+Для поддержки React Server Components в качестве бандлера или фреймворка мы рекомендуем зафиксировать конкретную версию React или использовать Canary-релиз. Мы продолжим работать с бандлерами и фреймворками над стабилизацией API, используемых для реализации React Server Components, в будущем.
-### Server Components without a Server {/*server-components-without-a-server*/}
-Server components can run at build time to read from the filesystem or fetch static content, so a web server is not required. For example, you may want to read static data from a content management system.
+### Server Components без сервера {/*server-components-without-a-server*/}
+Server Components могут запускаться во время сборки для чтения из файловой системы или получения статического контента, поэтому веб-сервер не требуется. Например, вы можете захотеть прочитать статические данные из системы управления контентом.
-Without Server Components, it's common to fetch static data on the client with an Effect:
+Без Server Components часто приходится получать статические данные на клиенте с помощью Effect:
```js
// bundle.js
import marked from 'marked'; // 35.9K (11.2K gzipped)
@@ -39,7 +39,7 @@ import sanitizeHtml from 'sanitize-html'; // 206K (63.3K gzipped)
function Page({page}) {
const [content, setContent] = useState('');
- // NOTE: loads *after* first page render.
+ // ПРИМЕЧАНИЕ: загружается *после* первого рендера страницы.
useEffect(() => {
fetch(`/api/content/${page}`).then((data) => {
setContent(data.content);
@@ -58,33 +58,33 @@ app.get(`/api/content/:page`, async (req, res) => {
});
```
-This pattern means users need to download and parse an additional 75K (gzipped) of libraries, and wait for a second request to fetch the data after the page loads, just to render static content that will not change for the lifetime of the page.
+Этот шаблон означает, что пользователи должны загрузить и разобрать дополнительные 75K (gzipped) библиотек и дождаться второго запроса для получения данных после загрузки страницы, только чтобы отобразить статический контент, который не изменится в течение всего времени жизни страницы.
-With Server Components, you can render these components once at build time:
+С помощью Server Components вы можете отрендерить эти компоненты один раз во время сборки:
```js
-import marked from 'marked'; // Not included in bundle
-import sanitizeHtml from 'sanitize-html'; // Not included in bundle
+import marked from 'marked'; // Не включено в бандл
+import sanitizeHtml from 'sanitize-html'; // Не включено в бандл
async function Page({page}) {
- // NOTE: loads *during* render, when the app is built.
+ // ПРИМЕЧАНИЕ: загружается *во время* рендера, когда приложение собирается.
const content = await file.readFile(`${page}.md`);
return
@@ -167,14 +167,14 @@ async function Note({id}) {
}
async function Author({id}) {
- // NOTE: loads *after* Note,
- // but is fast if data is co-located.
+ // ПРИМЕЧАНИЕ: загружается *после* Note,
+ // но быстро, если данные находятся рядом.
const author = await db.authors.get(id);
return
By: {author.name};
}
```
-The bundler then combines the data, rendered Server Components and dynamic Client Components into a bundle. Optionally, that bundle can then be server-side rendered (SSR) to create the initial HTML for the page. When the page loads, the browser does not see the original `Note` and `Author` components; only the rendered output is sent to the client:
+Затем бандлер объединяет данные, отрендеренные Server Components и динамические Client Components в бандл. При желании этот бандл может быть отрендерен серверной стороной (SSR) для создания начального HTML-кода страницы. Когда страница загружается, браузер не видит исходные компоненты `Note` и `Author`; клиенту отправляется только результат рендеринга:
```js
@@ -183,24 +183,24 @@ The bundler then combines the data, rendered Server Components and dynamic Clien
```
-Server Components can be made dynamic by re-fetching them from a server, where they can access the data and render again. This new application architecture combines the simple “request/response” mental model of server-centric Multi-Page Apps with the seamless interactivity of client-centric Single-Page Apps, giving you the best of both worlds.
+Server Components могут быть сделаны динамическими путем повторного получения их с сервера, где они могут получить доступ к данным и снова отрендериться. Эта новая архитектура приложения сочетает простую модель «запрос/ответ» серверно-ориентированных многостраничных приложений с бесшовной интерактивностью клиентско-ориентированных одностраничных приложений, давая вам лучшее из обоих миров.
-### Adding interactivity to Server Components {/*adding-interactivity-to-server-components*/}
+### Добавление интерактивности к Server Components {/*adding-interactivity-to-server-components*/}
-Server Components are not sent to the browser, so they cannot use interactive APIs like `useState`. To add interactivity to Server Components, you can compose them with Client Component using the `"use client"` directive.
+Server Components не отправляются в браузер, поэтому они не могут использовать интерактивные API, такие как `useState`. Чтобы добавить интерактивность к Server Components, вы можете комбинировать их с Client Components, используя директиву `"use client"`.
-#### There is no directive for Server Components. {/*there-is-no-directive-for-server-components*/}
+#### Для Server Components нет директивы. {/*there-is-no-directive-for-server-components*/}
-A common misunderstanding is that Server Components are denoted by `"use server"`, but there is no directive for Server Components. The `"use server"` directive is used for Server Functions.
+Распространенное заблуждение заключается в том, что Server Components обозначаются `"use server"`, но для Server Components директивы нет. Директива `"use server"` используется для Server Functions.
-For more info, see the docs for [Directives](/reference/rsc/directives).
+Для получения дополнительной информации см. документацию по [Directives](/reference/rsc/directives).
-In the following example, the `Notes` Server Component imports an `Expandable` Client Component that uses state to toggle its `expanded` state:
+В следующем примере `Notes` Server Component импортирует `Expandable` Client Component, который использует состояние для переключения своего состояния `expanded`:
```js
// Server Component
import Expandable from './Expandable';
@@ -237,11 +237,11 @@ export default function Expandable({children}) {
}
```
-This works by first rendering `Notes` as a Server Component, and then instructing the bundler to create a bundle for the Client Component `Expandable`. In the browser, the Client Components will see output of the Server Components passed as props:
+Это работает следующим образом: сначала рендерится `Notes` как Server Component, а затем бандлеру дается указание создать бандл для Client Component `Expandable`. В браузере Client Components увидят результат рендеринга Server Components, переданный в качестве пропсов:
```js
-
+
@@ -259,19 +259,19 @@ This works by first rendering `Notes` as a Server Component, and then instructin
### Async components with Server Components {/*async-components-with-server-components*/}
-Server Components introduce a new way to write Components using async/await. When you `await` in an async component, React will suspend and wait for the promise to resolve before resuming rendering. This works across server/client boundaries with streaming support for Suspense.
+Server Components представляют новый способ написания компонентов с использованием async/await. Когда вы используете `await` в асинхронном компоненте, React приостанавливает выполнение и ждет разрешения промиса перед возобновлением рендеринга. Это работает между границами сервера и клиента с поддержкой потоковой передачи для Suspense.
-You can even create a promise on the server, and await it on the client:
+Вы можете даже создать промис на сервере и дождаться его на клиенте:
```js
// Server Component
import db from './database';
async function Page({id}) {
- // Will suspend the Server Component.
+ // Приостановит выполнение Server Component.
const note = await db.notes.get(id);
- // NOTE: not awaited, will start here and await on the client.
+ // ПРИМЕЧАНИЕ: не дожидается, начнется здесь и будет ждать на клиенте.
const commentsPromise = db.comments.get(note.id);
return (
@@ -290,13 +290,13 @@ async function Page({id}) {
import {use} from 'react';
function Comments({commentsPromise}) {
- // NOTE: this will resume the promise from the server.
- // It will suspend until the data is available.
+ // ПРИМЕЧАНИЕ: это возобновит промис с сервера.
+ // Будет приостановлено до тех пор, пока данные не станут доступны.
const comments = use(commentsPromise);
return comments.map(commment =>
{comment}
);
}
```
-The `note` content is important data for the page to render, so we `await` it on the server. The comments are below the fold and lower-priority, so we start the promise on the server, and wait for it on the client with the `use` API. This will Suspend on the client, without blocking the `note` content from rendering.
+Контент `note` является важными данными для рендеринга страницы, поэтому мы ждем его на сервере. Комментарии находятся ниже основной части страницы и имеют более низкий приоритет, поэтому мы запускаем промис на сервере и ждем его на клиенте с помощью API `use`. Это вызовет Suspend на клиенте, не блокируя рендеринг контента `note`.
-Since async components are not supported on the client, we await the promise with `use`.
+Поскольку асинхронные компоненты не поддерживаются на клиенте, мы ожидаем промис с помощью `use`.
\ No newline at end of file
From 950a10117cfd5bc3f029a7603be73e325d53ced7 Mon Sep 17 00:00:00 2001
From: "translate-react-bot[bot]"
<251169733+translate-react-bot[bot]@users.noreply.github.com>
Date: Mon, 18 May 2026 16:32:02 +0000
Subject: [PATCH 2/3] =?UTF-8?q?docs:=20translate=20`server-components.md`?=
=?UTF-8?q?=20to=20=D0=A0=D1=83=D1=81=D1=81=D0=BA=D0=B8=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../reference/rsc/server-components.md | 53 +++++++++----------
1 file changed, 26 insertions(+), 27 deletions(-)
diff --git a/src/content/reference/rsc/server-components.md b/src/content/reference/rsc/server-components.md
index 27ab3288c6..6caedf309b 100644
--- a/src/content/reference/rsc/server-components.md
+++ b/src/content/reference/rsc/server-components.md
@@ -1,30 +1,29 @@
---
-title: Server Components
+title: Компоненты сервера
---
-
-Server Components предназначены для использования в [React Server Components](/learn/start-a-new-react-project#bleeding-edge-react-frameworks).
+Server Components используются в [React Server Components](/learn/start-a-new-react-project#bleeding-edge-react-frameworks).
-Server Components — это новый тип компонентов, которые рендерятся заранее, до сборки бандла, в среде, отдельной от вашего клиентского приложения или SSR-сервера.
+Server Components — это новый тип компонентов, которые рендерятся заранее, до бандлинга, в среде, отдельной от вашего клиентского приложения или SSR-сервера.
-Эта отдельная среда — «сервер» в React Server Components. Server Components могут запускаться один раз во время сборки на вашем CI-сервере или для каждого запроса с помощью веб-сервера.
+Эта отдельная среда — «сервер» в React Server Components. Server Components могут запускаться один раз во время сборки на вашем CI-сервере или для каждого запроса с использованием веб-сервера.
-#### Как мне реализовать поддержку Server Components? {/*how-do-i-build-support-for-server-components*/}
+#### Как реализовать поддержку Server Components? {/*how-do-i-build-support-for-server-components*/}
Хотя React Server Components в React 19 стабильны и не будут ломаться между минорными версиями, базовые API, используемые для реализации бандлера или фреймворка React Server Components, не следуют semver и могут ломаться между минорными версиями в React 19.x.
-Для поддержки React Server Components в качестве бандлера или фреймворка мы рекомендуем зафиксировать конкретную версию React или использовать Canary-релиз. Мы продолжим работать с бандлерами и фреймворками над стабилизацией API, используемых для реализации React Server Components, в будущем.
+Для поддержки React Server Components в качестве бандлера или фреймворка мы рекомендуем закрепиться на конкретной версии React или использовать Canary release. Мы продолжим работать с бандлерами и фреймворками над стабилизацией API, используемых для реализации React Server Components, в будущем.
@@ -58,9 +57,9 @@ app.get(`/api/content/:page`, async (req, res) => {
});
```
-Этот шаблон означает, что пользователи должны загрузить и разобрать дополнительные 75K (gzipped) библиотек и дождаться второго запроса для получения данных после загрузки страницы, только чтобы отобразить статический контент, который не изменится в течение всего времени жизни страницы.
+Этот шаблон означает, что пользователям необходимо загрузить и разобрать дополнительные 75K (gzipped) библиотек и дождаться второго запроса для получения данных после загрузки страницы, только чтобы отрисовать статический контент, который не изменится в течение всего времени жизни страницы.
-С помощью Server Components вы можете отрендерить эти компоненты один раз во время сборки:
+С помощью Server Components вы можете отрисовать эти компоненты один раз во время сборки:
```js
import marked from 'marked'; // Не включено в бандл
@@ -74,13 +73,13 @@ async function Page({page}) {
}
```
-Полученный результат затем может быть отрендерен серверной стороной (SSR) в HTML и загружен на CDN. Когда приложение загружается, клиент не увидит исходный компонент `Page` или ресурсоемкие библиотеки для рендеринга markdown. Клиент увидит только результат рендеринга:
+Полученный результат затем может быть отрендерен на стороне сервера (SSR) в HTML и загружен на CDN. Когда приложение загружается, клиент не увидит исходный компонент `Page` или ресурсоёмкие библиотеки для рендеринга markdown. Клиент увидит только отрисованный результат:
```js
```
-Это означает, что контент виден во время первой загрузки страницы, а бандл не включает ресурсоемкие библиотеки, необходимые для рендеринга статического контента.
+Это означает, что контент виден во время первой загрузки страницы, а бандл не включает ресурсоёмкие библиотеки, необходимые для рендеринга статического контента.
@@ -92,14 +91,14 @@ async function Page({page}) {
}
```
-Async Components — это новая функция Server Components, которая позволяет использовать `await` во время рендера.
+Async Components — это новая функция Server Components, которая позволяет использовать `await` при рендеринге.
См. [Async components with Server Components](#async-components-with-server-components) ниже.
### Server Components с сервером {/*server-components-with-a-server*/}
-Server Components также могут запускаться на веб-сервере во время запроса страницы, позволяя вам получить доступ к вашему слою данных без необходимости создавать API. Они рендерятся до того, как ваше приложение будет собрано, и могут передавать данные и JSX в качестве пропсов клиентским компонентам.
+Server Components также могут запускаться на веб-сервере во время запроса страницы, позволяя вам получить доступ к вашему слою данных без необходимости создавать API. Они рендерятся до того, как ваше приложение будет сбандлено, и могут передавать данные и JSX в качестве пропсов Client Components.
Без Server Components часто приходится получать динамические данные на клиенте в Effect:
@@ -150,7 +149,7 @@ app.get(`/api/authors/:id`, async (req, res) => {
});
```
-С помощью Server Components вы можете получить данные и отрендерить их в компоненте:
+С помощью Server Components вы можете читать данные и рендерить их в компоненте:
```js
import db from './database';
@@ -174,7 +173,7 @@ async function Author({id}) {
}
```
-Затем бандлер объединяет данные, отрендеренные Server Components и динамические Client Components в бандл. При желании этот бандл может быть отрендерен серверной стороной (SSR) для создания начального HTML-кода страницы. Когда страница загружается, браузер не видит исходные компоненты `Note` и `Author`; клиенту отправляется только результат рендеринга:
+Затем бандлер объединяет данные, отрисованные Server Components и динамические Client Components в бандл. При желании этот бандл может быть отрендерен на стороне сервера (SSR) для создания начального HTML-кода страницы. Когда страница загружается, браузер не видит исходные компоненты `Note` и `Author`; клиенту отправляется только отрисованный результат:
```js
@@ -183,17 +182,17 @@ async function Author({id}) {
```
-Server Components могут быть сделаны динамическими путем повторного получения их с сервера, где они могут получить доступ к данным и снова отрендериться. Эта новая архитектура приложения сочетает простую модель «запрос/ответ» серверно-ориентированных многостраничных приложений с бесшовной интерактивностью клиентско-ориентированных одностраничных приложений, давая вам лучшее из обоих миров.
+Server Components могут быть сделаны динамическими путем повторного получения их с сервера, где они могут получить доступ к данным и снова отрисоваться. Эта новая архитектура приложения сочетает простую модель «запрос/ответ» серверно-ориентированных многостраничных приложений с бесшовной интерактивностью клиентско-ориентированных одностраничных приложений, предоставляя вам лучшее из обоих миров.
-### Добавление интерактивности к Server Components {/*adding-interactivity-to-server-components*/}
+### Добавление интерактивности в Server Components {/*adding-interactivity-to-server-components*/}
-Server Components не отправляются в браузер, поэтому они не могут использовать интерактивные API, такие как `useState`. Чтобы добавить интерактивность к Server Components, вы можете комбинировать их с Client Components, используя директиву `"use client"`.
+Server Components не отправляются в браузер, поэтому они не могут использовать интерактивные API, такие как `useState`. Чтобы добавить интерактивность в Server Components, вы можете комбинировать их с Client Components, используя директиву `"use client"`.
-#### Для Server Components нет директивы. {/*there-is-no-directive-for-server-components*/}
+#### Директивы для Server Components не существует. {/*there-is-no-directive-for-server-components*/}
-Распространенное заблуждение заключается в том, что Server Components обозначаются `"use server"`, но для Server Components директивы нет. Директива `"use server"` используется для Server Functions.
+Распространенное заблуждение заключается в том, что Server Components обозначаются как `"use server"`, но директивы для Server Components не существует. Директива `"use server"` используется для Server Functions.
Для получения дополнительной информации см. документацию по [Directives](/reference/rsc/directives).
@@ -237,7 +236,7 @@ export default function Expandable({children}) {
}
```
-Это работает следующим образом: сначала рендерится `Notes` как Server Component, а затем бандлеру дается указание создать бандл для Client Component `Expandable`. В браузере Client Components увидят результат рендеринга Server Components, переданный в качестве пропсов:
+Это работает следующим образом: сначала `Notes` рендерится как Server Component, а затем бандлеру дается указание создать бандл для Client Component `Expandable`. В браузере Client Components увидят результат Server Components, переданный в качестве пропсов:
```js
@@ -257,11 +256,11 @@ export default function Expandable({children}) {
```
-### Async components with Server Components {/*async-components-with-server-components*/}
+### Async components с Server Components {/*async-components-with-server-components*/}
-Server Components представляют новый способ написания компонентов с использованием async/await. Когда вы используете `await` в асинхронном компоненте, React приостанавливает выполнение и ждет разрешения промиса перед возобновлением рендеринга. Это работает между границами сервера и клиента с поддержкой потоковой передачи для Suspense.
+Server Components представляют новый способ написания компонентов с использованием async/await. Когда вы используете `await` в асинхронном компоненте, React приостанавливает выполнение и ждет разрешения промиса перед возобновлением рендеринга. Это работает на границах сервера/клиента с поддержкой потоковой передачи для Suspense.
-Вы можете даже создать промис на сервере и дождаться его на клиенте:
+Вы можете даже создать промис на сервере и ожидать его на клиенте:
```js
// Server Component
@@ -271,7 +270,7 @@ async function Page({id}) {
// Приостановит выполнение Server Component.
const note = await db.notes.get(id);
- // ПРИМЕЧАНИЕ: не дожидается, начнется здесь и будет ждать на клиенте.
+ // ПРИМЕЧАНИЕ: не ожидается, начнется здесь и будет ожидаться на клиенте.
const commentsPromise = db.comments.get(note.id);
return (
@@ -291,12 +290,12 @@ import {use} from 'react';
function Comments({commentsPromise}) {
// ПРИМЕЧАНИЕ: это возобновит промис с сервера.
- // Будет приостановлено до тех пор, пока данные не станут доступны.
+ // Он будет приостановлен до тех пор, пока данные не станут доступны.
const comments = use(commentsPromise);
return comments.map(commment =>
{comment}
);
}
```
-Контент `note` является важными данными для рендеринга страницы, поэтому мы ждем его на сервере. Комментарии находятся ниже основной части страницы и имеют более низкий приоритет, поэтому мы запускаем промис на сервере и ждем его на клиенте с помощью API `use`. Это вызовет Suspend на клиенте, не блокируя рендеринг контента `note`.
+Контент `note` является важными данными для рендеринга страницы, поэтому мы ожидаем его на сервере. Комментарии находятся ниже основного контента и имеют более низкий приоритет, поэтому мы запускаем промис на сервере и ожидаем его на клиенте с помощью API `use`. Это приведет к приостановке выполнения на клиенте, не блокируя рендеринг контента `note`.
Поскольку асинхронные компоненты не поддерживаются на клиенте, мы ожидаем промис с помощью `use`.
\ No newline at end of file
From 3c95c5d71894241b3901d373481ad6851b4de471 Mon Sep 17 00:00:00 2001
From: nivaldo
Date: Mon, 18 May 2026 14:47:01 -0300
Subject: [PATCH 3/3] chore: keep frontmatter title as-is
---
src/content/reference/rsc/server-components.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/content/reference/rsc/server-components.md b/src/content/reference/rsc/server-components.md
index 6caedf309b..b94cb959b8 100644
--- a/src/content/reference/rsc/server-components.md
+++ b/src/content/reference/rsc/server-components.md
@@ -1,6 +1,7 @@
---
-title: Компоненты сервера
+title: Server Components
---
+
Server Components используются в [React Server Components](/learn/start-a-new-react-project#bleeding-edge-react-frameworks).
@@ -298,4 +299,4 @@ function Comments({commentsPromise}) {
Контент `note` является важными данными для рендеринга страницы, поэтому мы ожидаем его на сервере. Комментарии находятся ниже основного контента и имеют более низкий приоритет, поэтому мы запускаем промис на сервере и ожидаем его на клиенте с помощью API `use`. Это приведет к приостановке выполнения на клиенте, не блокируя рендеринг контента `note`.
-Поскольку асинхронные компоненты не поддерживаются на клиенте, мы ожидаем промис с помощью `use`.
\ No newline at end of file
+Поскольку асинхронные компоненты не поддерживаются на клиенте, мы ожидаем промис с помощью `use`.