You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Добавлены бэктики
* routing.md исправлен пример
* data.md исправлен пример
* data.md добавлены бэктики
* data.md исправление
* universal.md правка
* universal.md правка
* api.md опечатка
* structure.md опечатка
* head.md исправлен пример
* README.md исправлена ссылка на HTTPS
* caching.md правка
* api.md новые правки к 2.5.0
* basic.md добавлен новый пример для 2.5.0
* non-node.md добавлен новый раздел
* README.md добавлена ссылка на новый раздел
* SUMMARY.md добавлена ссылка на новый раздел в оглавление
* non-node.md допереведен комментарий
* hydration.md новые правки
* non-node.md мелкие правки
Copy file name to clipboardExpand all lines: ru/README.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ Vue.js — это фреймворк для создания приложени
41
41
42
42
## Об этом руководстве
43
43
44
-
Это руководство ориентировано на SPA приложения с рендерингом на сервере, используя Node.js в качестве сервера. Использование серверного рендеринга Vue совместно с другими технологиями и настройками бэкэнда являются отдельной темой и не рассматриваются в этом руководстве.
44
+
Это руководство ориентировано на SPA приложения с рендерингом на сервере, используя Node.js в качестве сервера. Использование серверного рендеринга Vue совместно с другими технологиями и настройками бэкэнда являются отдельной темой и кратко обсуждается в [отдельном разделе](./non-node.md).
45
45
46
46
Это руководство будет очень детальным и предполагает, что вы уже знакомы с самим Vue.js, имеете знания и опыт работы с Node.js и Webpack. Если вы предпочитаете более высокоуровневые решения, обеспечивающие работу из коробки — вам следует попробовать [Nuxt.js](https://nuxtjs.org/). Он построен на том же стеке Vue, но позволяет абстрагироваться от написания шаблонного кода, а также предоставляет некоторые дополнительные возможности, такие как генерация статичного сайта. Однако он может не подойти, если вам необходим полный контроль над структурой приложения. В любом случае, вам будет полезно прочитать это руководство, чтобы лучше понимать, как все составляющие работают вместе.
Рендерит экземпляр Vue в строку. Объект контекста опционален. Коллбэк является обычным для Node.js коллбэком, где первый аргумент является ошибкой, а второй аргумент — отрендеренной строкой.
36
36
37
-
-#### `renderer.renderToStream(vm[, context])`
37
+
С версии 2.5.0+ коллбэк является опциональным. Когда коллбэк не указан, метод возвращает Promise, который разрешается отрендеренным HTML.
38
38
39
-
Рендерит экземпляр Vue в поток (stream) Node.js. Объект контекста опционален. См. также [Стриминг](./streaming.md) для подробностей.
Рендерит экземпляр Vue в [Node.js readable stream](https://nodejs.org/dist/latest-v8.x/docs/api/stream.html#stream_readable_streams). Объект контекста опционален. См. также [Стриминг](./streaming.md) для подробностей.
Рендерит сборку в строку. Объект контекста опционален. Коллбэк является обычным для Node.js коллбэком, где первый аргумент является ошибкой, а второй аргумент — отрендеренной строкой.
46
48
47
-
-#### `bundleRenderer.renderToStream([context])`
49
+
С версии 2.5.0+ коллбэк является опциональным. Когда коллбэк не указан, метод возвращает Promise, который разрешается отрендеренным HTML.
Рендерит сборку в поток (stream) Node.js. Объект контекста опционален. См. также [Стриминг](./streaming.md) для подробностей.
53
+
Рендерит сборку в [Node.js readable stream](https://nodejs.org/dist/latest-v8.x/docs/api/stream.html#stream_readable_streams). Объект контекста опционален. См. также [Стриминг](./streaming.md) для подробностей.
-`context.state`: (Object) начальное состояние хранилища Vuex, которое должно быть внедрено в страницу как `window.__INITIAL_STATE__`. Внедряемый JSON автоматически обрабатывается с помощью [serialize-javascript](https://github.com/yahoo/serialize-javascript) для предотвращения XSS-уязвимостей.
69
73
74
+
С версии 2.5.0+, встраиваемый скрипт также автоматически удаляется в режиме production.
75
+
70
76
Кроме того, когда предоставлен `clientManifest`, шаблон автоматически внедряет следующее:
71
77
72
78
- JavaScript и CSS ресурсы для клиентской части, необходимые для рендеринга (с асинхронными фрагментами добавляемыми автоматически);
Предоставляет объект манифеста клиентской сборки, сгенерированный `vue-server-renderer/client-plugin`. Клиентский манифест предоставляет для рендерера сборки необходимую информацию для автоматического внедрения ресурсов в шаблон HTML. Подробнее в разделе [Генерация `clientManifest`](./build-config.md#generating-clientmanifest).
87
93
88
94
-#### `inject`
89
95
90
-
- 2.3.0+
96
+
-Добавлено в версии 2.3.0+
91
97
92
98
Контролирует, выполнять ли автоматические внедрения при использовании `template`. По умолчанию `true`.
93
99
94
100
См. также: [Внедрение ресурсов вручную](./build-config.md#manual-asset-injection).
95
101
96
102
-#### `shouldPreload`
97
103
98
-
- 2.3.0+
104
+
-Добавлено в версии 2.3.0+
99
105
100
106
Функция, определяющая какие файлы должны иметь `<link rel="preload">` в генерируемых ресурсах.
Функция для управления файлами, которые должны содержаться в генерируемых `<link rel="prefetch">`.
139
+
140
+
По умолчанию все ресурсы в асинхронных частях будут предварительно загружены, так как это директива с низким приоритетом; однако вы можете настроить что требуется предзагружать для лучшего контроля над использованием канала загрузки. Этот параметр ожидает такую же сигнатуру функции, как `shouldPreload`.
141
+
128
142
-#### `runInNewContext`
129
143
130
-
- 2.3.0+
131
-
-используется только в `createBundleRenderer`
144
+
-Добавлено в версии 2.3.0+
145
+
-Используется только в `createBundleRenderer`
132
146
- Ожидается: `boolean | 'once'` (`'once'` поддерживается только с версии 2.3.1+)
133
147
134
148
По умолчанию, рендерер сборки будет создавать новый контекст V8 для каждого рендеринга и повторно исполнять всю сборку. Это имеет некоторые преимущества — например, код приложения изолирован от процесса сервера и не нужно беспокоиться [о проблеме «синглтона с состоянием»](./structure.md#avoid-stateful-singletons), которая упоминалась ранее в руководстве. Однако этот режим требует значительных затрат производительности, поскольку повторное выполнение сборки обходится дорого, особенно когда приложение становится большим.
Указание пути базового каталога для серверной сборки для разрешения зависимостей из `node_modules` в нём. Это необходимо только в том случае, если сгенерированный файл сборки располагается в другом месте, в отличии от используемых NPM-зависимостей, или когда ваш `vue-server-renderer` подключен NPM-ссылкой в вашем текущем проекте.
Copy file name to clipboardExpand all lines: ru/hydration.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -9,13 +9,13 @@ app.$mount('#app')
9
9
10
10
Поскольку сервер уже отобразил разметку, мы, очевидно, не хотели бы её выбрасывать и заново создавать все элементы DOM. Вместо этого мы хотим «гидрировать» статическую разметку и сделать её интерактивной.
11
11
12
-
Если вы исследовали вывод после серверного рендеринга, вы могли заметить, что у корневого элемента приложения есть специальный атрибут:
12
+
Если вы исследовали вывод после серверного рендеринга, вы могли заметить, что у корневого элемента приложения должен быть добавлен специальный атрибут:
13
13
14
14
```js
15
15
<div id="app" data-server-rendered="true">
16
16
```
17
17
18
-
Специальный атрибут `data-server-rendered` позволяет клиентской части Vue знать, что разметка отображается сервером, и он должен монтироваться в режиме гидратации.
18
+
Специальный атрибут `data-server-rendered` позволяет клиентской части Vue знать, что разметка отображается сервером, и он должен монтироваться в режиме гидратации. Обратите внимание, что он не добавляет `id="app"`, а только атрибут `data-server-rendered`: вам необходимо добавить ID или какой-либо другой селектор в корневой элемент самостоятельно или приложение не будет гидратироваться правильно.
19
19
20
20
В режиме разработки Vue будет проверять, что виртуальное дерево DOM, сгенерированное на стороне клиента, совпадает с структурой DOM созданной на сервере. При нахождении несоответствия, он будет считать гидратацию неудачной, отказываться от существующего DOM и рендерить всё с нуля. **В режиме production, эта проверка отключена для достижения максимальной производительности.**
По умолчанию сборка `vue-server-renderer` предполагает использование Node.js окружения, что делает её непригодной для использования в альтернативных JavaScript окружениях, таких как [PHP V8Js](https://github.com/phpv8/v8js) или [Oracle Nashorn](https://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/). С версии 2.5+ мы предоставляем сборку в `vue-server-renderer/basic.js`, которая в значительной степени менее зависима от окружения, что делает её пригодной для использования в окружениях, упомянутых выше.
4
+
5
+
Для обоих вариантов необходимо сначала подготовить окружение создав моки для объектов `global` и `process`, с переменной `process.env.VUE_ENV` установленной в значение `"server"`, и переменной `process.env.NODE_ENV` установленной в значение `"development"` или `"production"`.
6
+
7
+
При использовании Nashorn также может потребоваться предоставить полифилл для `Promise` или `setTimeout` с использованием нативных таймеров Java.
0 commit comments