Skip to content

Commit eb1c9db

Browse files
Alex-Sokolovkazupon
authored andcommitted
docs: [RU] Translation update (#237)
* [RU] Translation moved to VuePress * add redirects * hydration.md fix * docs: [RU] typos * docs: [RU] 2.6 updates * docs: [RU] typo
1 parent 260c32c commit eb1c9db

File tree

5 files changed

+184
-149
lines changed

5 files changed

+184
-149
lines changed

docs/ru/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- vue-router 2.5.0+
88
- vue-loader 12.0.0+ & vue-style-loader 3.0.0+
99

10-
Если вы ранее использовали Vue 2.2 с серверным рендерингом, вы заметите, что рекомендуемая структура кода теперь [немного отличается](./guide/structure.md) (с новой опцией [runInNewContext](./api/README.md#runinnewcontext), установленной в `false`). Ваше существующее приложение по-прежнему будет работать, но лучше внесите изменения с учётом новых рекомендаций.
10+
Если вы ранее использовали Vue 2.2 с серверным рендерингом, вы заметите, что рекомендуемая структура кода теперь [немного отличается](./guide/structure.md) (с новой опцией [runInNewContext](./api/#runinnewcontext), установленной в `false`). Ваше существующее приложение по-прежнему будет работать, но лучше внесите изменения с учётом новых рекомендаций.
1111
:::
1212

1313
## Что такое серверный рендеринг (SSR)?

docs/ru/api/README.md

+69-7
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ bundleRenderer.renderToStream([context]): stream.Readable
8484
8585
### template
8686
87+
- **Тип:**
88+
- `string`
89+
- `string | (() => string | Promise<string>)` (с версии 2.6)
90+
91+
**При использовании строкового шаблона:**
92+
8793
Предоставляет шаблон для всей HTML-страницы. Шаблон должен содержать комментарий `<!--vue-ssr-outlet-->`, который определяет место подстановки отрендеренного контента приложения.
8894
8995
Шаблон также поддерживает базовые интерполяции с использованием контекста рендера:
@@ -101,27 +107,57 @@ bundleRenderer.renderToStream([context]): stream.Readable
101107
102108
С версии 2.5.0+, встраиваемый скрипт также автоматически удаляется в режиме production.
103109
110+
С версии 2.6.0+, если присутствует `context.nonce`, он будет добавлен как атрибут `nonce` во встраиваемый скрипт. Это позволит встраиваемому скрипту соответствовать CSP, который требует nonce.
111+
104112
Кроме того, когда предоставлен `clientManifest`, шаблон автоматически внедряет следующее:
105113
106114
- JavaScript и CSS ресурсы для клиентской части, необходимые для рендеринга (с асинхронными фрагментами добавляемыми автоматически);
107115
- Оптимальные ресурсы `<link rel="preload/prefetch">` для отображаемой страницы.
108116
109117
Вы можете отключить все автоматические внедрения передав `inject: false` в рендерер.
110118
119+
**При использовании функции шаблона:**
120+
121+
::: warning ВНИМАНИЕ
122+
Шаблоны в виде функции поддерживаются только с версии 2.6+ и при использовании `renderer.renderToString`. Это НЕ ПОДДЕРЖИВАЕТСЯ в `renderer.renderToStream`.
123+
:::
124+
125+
Опция `template` также может быть функцией, которая возвращает отрендеренный HTML или Promise, который разрешится отрендеренным HTML. Это позволит использовать собственные строковые шаблоны JavaScript и потенциальные асинхронные операции в процессе рендеринга шаблона.
126+
127+
Функция принимает два аргумента:
128+
129+
1. Результат рендеринга компонента приложения в виде строки;
130+
2. Объект контекста рендеринга.
131+
132+
Пример:
133+
134+
``` js
135+
const renderer = createRenderer({
136+
template: (result, context) => {
137+
return `<html>
138+
<head>${context.head}</head>
139+
<body>${result}</body>
140+
<html>`
141+
}
142+
})
143+
```
144+
145+
Обратите внимание, что при использовании собственной функции для шаблона ничего автоматически не будет добавляться — вы полностью контролируете то, что будет включаться в HTML, но также нести ответственность за включение всего необходимого (например, ссылки на ресурсы, если вы используете bundle renderer).
146+
111147
См. также:
112148
113-
- [Использование шаблона страниц](../guide/#using-a-page-template)
114-
- [Внедрение ресурсов вручную](../guide/build-config.md#manual-asset-injection)
149+
- [Использование шаблона страниц](../guide/#испоnьзование-шабnона-страниц)
150+
- [Внедрение ресурсов вручную](../guide/build-config.md#внедрение-ресурсов-вручную)
115151
116152
### clientManifest
117153
118-
Предоставляет объект манифеста клиентской сборки, сгенерированный `vue-server-renderer/client-plugin`. Клиентский манифест предоставляет для рендерера сборки необходимую информацию для автоматического внедрения ресурсов в шаблон HTML. Подробнее в разделе [Генерация `clientManifest`](../guide/build-config.md#generating-clientmanifest).
154+
Предоставляет объект манифеста клиентской сборки, сгенерированный `vue-server-renderer/client-plugin`. Клиентский манифест предоставляет для рендерера сборки необходимую информацию для автоматического внедрения ресурсов в шаблон HTML. Подробнее в разделе [Генерация `clientManifest`](../guide/build-config.md#генерация-clientmanifest).
119155
120156
### inject
121157
122158
Контролирует, выполнять ли автоматические внедрения при использовании `template`. По умолчанию `true`.
123159
124-
См. также: [Внедрение ресурсов вручную](../guide/build-config.md#manual-asset-injection).
160+
См. также: [Внедрение ресурсов вручную](../guide/build-config.md#внедрение-ресурсов-вручную).
125161
126162
### shouldPreload
127163
@@ -166,7 +202,7 @@ const renderer = createBundleRenderer(bundle, {
166202
- Используется только в `createBundleRenderer`
167203
- Возможные значения: `boolean | 'once'` (`'once'` поддерживается только с версии 2.3.1+)
168204
169-
По умолчанию, рендерер сборки будет создавать новый контекст V8 для каждого рендеринга и повторно исполнять всю сборку. Это имеет некоторые преимущества — например, код приложения изолирован от процесса сервера и не нужно беспокоиться [о проблеме «синглтона с состоянием»](../guide/structure.md#avoid-stateful-singletons), которая упоминалась ранее в руководстве. Однако этот режим требует значительных затрат производительности, поскольку повторное выполнение сборки обходится дорого, особенно когда приложение становится большим.
205+
По умолчанию, рендерер сборки будет создавать новый контекст V8 для каждого рендеринга и повторно исполнять всю сборку. Это имеет некоторые преимущества — например, код приложения изолирован от процесса сервера и не нужно беспокоиться [о проблеме «синглтона с состоянием»](../guide/structure.md#избегайте-сингnтонов-с-состоянием), которая упоминалась ранее в руководстве. Однако этот режим требует значительных затрат производительности, поскольку повторное выполнение сборки обходится дорого, особенно когда приложение становится большим.
170206
171207
По умолчанию эта опция имеет значение `true` для обеспечения обратной совместимости, но рекомендуется использовать `runInNewContext: false` или `runInNewContext: 'once'` всегда, когда это возможно.
172208
@@ -185,11 +221,11 @@ const renderer = createBundleRenderer(bundle, {
185221
186222
- Используется только в `createBundleRenderer`
187223
188-
Указание пути базового каталога для серверной сборки для разрешения зависимостей из `node_modules` в нём. Это необходимо только в том случае, если сгенерированный файл сборки располагается в другом месте, в отличии от используемых NPM-зависимостей, или когда ваш `vue-server-renderer` подключен NPM-ссылкой в вашем текущем проекте.
224+
Указание пути базового каталога для серверной сборки для разрешения зависимостей из `node_modules` в нём. Это необходимо только в том случае, если сгенерированный файл сборки располагается в другом месте, в отличии от используемых NPM-зависимостей, или когда ваш `vue-server-renderer` подключён NPM-ссылкой в вашем текущем проекте.
189225
190226
### cache
191227
192-
Реализация [кэширования на уровне компонентов](../guide/caching.md#component-level-caching). Объект кэша должен реализовать следующий интерфейс (соответствуя нотациям Flow):
228+
Реализация [кэширования на уровне компонентов](../guide/caching.md#кэширование-на-уровне-компонентов). Объект кэша должен реализовать следующий интерфейс (соответствуя нотациям Flow):
193229
194230
``` js
195231
type RenderCache = {
@@ -245,6 +281,32 @@ const renderer = createRenderer({
245281
246282
Например, можете посмотреть [серверную реализацию для директивы `v-show`](https://github.com/vuejs/vue/blob/dev/src/platforms/web/server/directives/show.js).
247283
284+
### serializer
285+
286+
> Добавлено в версии 2.6
287+
288+
Пользовательская функция сериализатора для `context.state`. Поскольку сериализованное состояние будет частью вашего итогового HTML, важно использовать функцию, которая должным образом экранирует символы HTML по соображениям безопасности. Сериализатор по умолчанию — [serialize-javascript](https://github.com/yahoo/serialize-javascript) с опцией `{ isJSON: true }`.
289+
290+
## Опции компонента только для сервера
291+
292+
### serverCacheKey
293+
294+
- **Тип:** `(props) => any`
295+
296+
Возвращает ключ кэша для компонента на основе входных параметров. НЕ ИМЕЕТ доступа к `this`.
297+
298+
Начиная с версии 2.6, вы можете явно отказываться от кэширования, возвращая значение `false`.
299+
300+
Подробнее в [Кэшировании на уровне компонентов](../guide/caching.html#кэширование-на-уровне-компонентов).
301+
302+
### serverPrefetch
303+
304+
- **Тип:** `() => Promise<any>`
305+
306+
Загрузка асинхронных данных во время рендеринга на стороне сервера. Он должен сохранить полученные данные в глобальном хранилище или вернуть Promise. Рендерер сервера будет дожидаться разрешения Promise в этом хуке. Этот хук имеет доступ к экземпляру компонента через `this`.
307+
308+
Подробнее в [Предзагрузке данных и состояния](../guide/data.html).
309+
248310
## Плагины webpack
249311
250312
Webpack плагины предоставляются как отдельные файлы, которые должны быть подключены напрямую:

docs/ru/guide/build-config.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ const renderer = createBundleRenderer('/path/to/vue-ssr-server-bundle.json', {
7070

7171
Конфигурация клиентской части может оставаться практически такой же, как и базовой. Очевидно, вам нужно указать `entry` на файл входной точки клиентской части. Кроме того, если вы используете `CommonsChunkPlugin`, убедитесь, что используете его только в конфигурации клиентской части, потому что для серверной сборки требуется одна точка входа.
7272

73-
### Generating `clientManifest`
73+
### Генерация `clientManifest`
7474

7575
> требуется версия 2.3.0+
7676

docs/ru/guide/caching.md

+4
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ export default {
7373

7474
При возвращении константы компонент всегда будет кэшироваться, что отлично подходит для чисто статических компонентов.
7575

76+
::: tip Исключение из кэширования
77+
С версии 2.6.0 можно явно возвращать `false` в `serverCacheKey`, чтобы не использовать компонент из кэша, а отрисовывать заново.
78+
:::
79+
7680
### Когда использовать кэширование компонентов
7781

7882
Если рендерер найдёт попадание в кэше для компонента во время рендеринга, он будет напрямую переиспользовать кэшированный результат для всего поддерева. Это означает, что вы **НЕ ДОЛЖНЫ** кэшировать компонент когда:

0 commit comments

Comments
 (0)