Skip to content

Commit 64bc2ef

Browse files
committed
Merge remote-tracking branch 'upstream/master' into working
# Conflicts: # README.md Signed-off-by: Bruno Lesieur <[email protected]>
2 parents b73074e + ab29281 commit 64bc2ef

16 files changed

+57
-44
lines changed

book.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"gitbook": ">3.0.0",
3-
"plugins": ["edit-link", "theme-vuejs@git+https://github.com/pearofducks/gitbook-plugin-theme-vuejs.git", "-fontsettings", "github"],
3+
"plugins": ["edit-link", "theme-vuejs", "-fontsettings", "github"],
44
"pluginsConfig": {
55
"edit-link": {
66
"base": "https://github.com/vuejs/vue-ssr-docs/edit/master/",

en/SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- [Introduction au moteur de dépaquetage](bundle-renderer.md)
88
- [Configuration de pré-compilation](build-config.md)
99
- [Gestion des CSS](css.md)
10-
- [Gestion des entêtes (En)](head.md)
10+
- [Gestion des entêtes](head.md)
1111
- [Mise en cache](caching.md)
1212
- [Envoi par flux](streaming.md)
1313
- [Référence de l'API](api.md)

en/head.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export default {
5252
mixins: [titleMixin],
5353
title () {
5454
return this.item.title
55-
}
55+
},
5656

5757
asyncData ({ store, route }) {
5858
return store.dispatch('fetchItem', route.params.id)

fr/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Guide du rendu côté serveur avec Vue.js
22

33
> **Note :** Ce guide nécessite les versions de Vue et de ses bibliothèques de support suivantes :
4-
> - vue & vue-server-renderer >= 2.3.0
5-
> - vue-router >= 2.5.0
6-
> - vue-loader >= 12.0.0 & vue-style-loader >= 3.0.0
4+
> - vue & vue-server-renderer 2.3.0+
5+
> - vue-router 2.5.0+
6+
> - vue-loader 12.0.0+ & vue-style-loader 3.0.0+
77
88
> Si vous avez déjà utilisé le rendu côté serveur (SSR pour *Server-Side Rendering*) avec Vue 2.2, vous vous apercevrez que la structure de code recommandée est maintenant [légèrement différente](./structure.md) (avec la nouvelle option [runInNewContext](./api.md#runinnewcontext) mise à `false`). Votre application devrait continuer à fonctionner, mais il est recommandé de migrer vers les nouvelles recommandations.
99

fr/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ Voyez l'[Introduction au moteur de dépaquetage](./bundle-renderer.md) et la [Co
177177
})
178178
```
179179

180-
Notez que cet objet de mise en cache doit au moins implémenter `get` et `set`. De plus `get` et `set` peuvent être optionnellement asynchrone s'ils acceptent en second argument une fonction de rappel. Cela permet à la mise en cache d'utiliser des APIs. Par ex. un client Redis :
180+
Notez que cet objet de mise en cache doit au moins implémenter `get` et `set`. De plus `get` et `set` peuvent être optionnellement asynchrones s'ils acceptent en second argument une fonction de rappel. Cela permet à la mise en cache d'utiliser des APIs. Par ex. un client Redis :
181181

182182
``` js
183183
const renderer = createRenderer({

fr/css.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Plus important encore, `vue-style-loader`, le loader utilisé en interne par `vu
2222

2323
## Activer l'extraction CSS
2424

25-
Pour extraire le CSS des fichiers `*.vue`, utilisez l'option `extractCSS` du `vue-loader` (requiert `vue-loader>=12.0.0`) :
25+
Pour extraire le CSS des fichiers `*.vue`, utilisez l'option `extractCSS` du `vue-loader` (requiert `vue-loader` 12.0.0+) :
2626

2727
``` js
2828
// webpack.config.js

fr/head.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export default {
6666
}
6767
```
6868

69-
Et passé au moteur de rendu de paquetage dans le template.
69+
Et passé au moteur de rendu de paquetage dans le template :
7070

7171
``` html
7272
<html>

package-lock.json

Lines changed: 26 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
"homepage": "https://github.com/vuejs/vue-ssr-docs#readme",
2525
"devDependencies": {
2626
"gitbook-plugin-edit-link": "^2.0.2",
27-
"gitbook-plugin-github": "^3.0.0",
28-
"gitbook-plugin-theme-vuejs": "pearofducks/gitbook-plugin-theme-vuejs"
27+
"gitbook-plugin-github": "^2.0.0"
28+
},
29+
"dependencies": {
30+
"gitbook-plugin-theme-vuejs": "^1.0.0"
2931
}
3032
}

ru/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Руководство по серверному рендерингу Vue.js
22

33
> **Примечание:** для этого руководства требуются следующие версии Vue и библиотек:
4-
> - vue & vue-server-renderer >= 2.3.0
5-
> - vue-router >= 2.5.0
6-
> - vue-loader >= 12.0.0 & vue-style-loader >= 3.0.0
4+
> - vue & vue-server-renderer 2.3.0+
5+
> - vue-router 2.5.0+
6+
> - vue-loader 12.0.0+ & vue-style-loader 3.0.0+
77
88
> Если вы ранее использовали Vue 2.2 с серверным рендерингом, вы заметите, что рекомендуемая структура кода теперь [немного отличается](./structure.md) (с новой опцией [runInNewContext](./api.md#runinnewcontext) установленной в `false`). Ваше существующее приложение по-прежнему будет работать, но советуем внести изменения с учётом новых рекомендаций.
99

ru/caching.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export default {
6767
}
6868
```
6969

70-
Обратите внимание, что подлежащий кэшированию компонент **также должен определять уникальную опцию «name»**. С уникальным именем ключ кэша таким образом является компоненто-зависимым: вам не нужно беспокоиться о двух компонентах, возвращающих одинаковый ключ.
70+
Обратите внимание, что подлежащий кэшированию компонент **также должен определять уникальную опцию `name`**. С уникальным именем ключ кэша таким образом является компоненто-зависимым: вам не нужно беспокоиться о двух компонентах, возвращающих одинаковый ключ.
7171

7272
Ключ, возвращаемый из `serverCacheKey` должен содержать достаточную информацию для представления формы результата рендеринга. Указанное выше является хорошей реализацией, если результат рендеринга определяется исключительно с помощью `props.item.id`. Однако, если элемент с таким же идентификатором может со временем меняться или результат рендеринга также зависит от других данных, вам необходимо изменить реализацию `getCacheKey`, чтобы учитывать и другие переменные.
7373

ru/css.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
## Настройка извлечения CSS
2424

25-
Для извлечения CSS из `*.vue` файлов в `vue-loader` используется опция `extractCSS` (требует `vue-loader>=12.0.0`):
25+
Для извлечения CSS из `*.vue` файлов в `vue-loader` используется опция `extractCSS` (требует `vue-loader` 12.0.0+):
2626

2727
``` js
2828
// webpack.config.js

ru/head.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Аналогично внедрению ресурсов, управление заголовочными тегами следует той же идее: мы можем динамически присоединять данные к `context` рендерера в жизненном цикле компонента, а затем интерполировать эти данные в `template`.
44

5-
> С версии >=2.3.2 вы можете напрямую получать доступ к контексту SSR в компонентах через `this.$ssrContext`. В более ранних версиях вам потребуется вручную внедрять контекст SSR, передав его в `createApp()` и выставляя его на корневом экземплере `$options` — после чего, компоненты потомки смогут получить к нему доступ через `this.$root.$options.ssrContext`.
5+
> С версии 2.3.2+ вы можете напрямую получать доступ к контексту SSR в компонентах через `this.$ssrContext`. В более ранних версиях вам потребуется вручную внедрять контекст SSR, передав его в `createApp()` и выставляя его на корневом экземплере `$options` — после чего, компоненты потомки смогут получить к нему доступ через `this.$root.$options.ssrContext`.
66
77
Мы можем написать простую примесь для управления заголовком:
88

@@ -38,7 +38,7 @@ const clientTitleMixin = {
3838
}
3939
}
4040

41-
// значение VUE_ENV будет определено плагином webpack.DefinePlugin
41+
// значение `VUE_ENV` будет определено плагином `webpack.DefinePlugin`
4242
export default process.env.VUE_ENV === 'server'
4343
? serverTitleMixin
4444
: clientTitleMixin
@@ -66,7 +66,7 @@ export default {
6666
}
6767
```
6868

69-
И внутри `template`, переданного в рендерер сборки:
69+
И внутри шаблона, переданного в рендерер сборки:
7070

7171
``` html
7272
<html>

yarn.lock

Lines changed: 0 additions & 15 deletions
This file was deleted.

zh/README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
> - vue-router 2.5.0+
66
> - vue-loader 12.0.0+ & vue-style-loader 3.0.0+
77
8-
> 如果先前已经使用过 Vue 2.2 的服务器端渲染(SSR),您应该注意到,推荐的代码结构现在[略有不同](./structure.md)(使用新的 [runInNewContext](./api.md#runinnewcontext) 选项,并设置为 `false`)。现有的应用程序可以继续运行,但建议您迁移到新的推荐规范
8+
> 如果先前已经使用过 Vue 2.2 的服务器端渲染(SSR),你应该注意到,推荐的代码结构现在[略有不同](./structure.md)(使用新的 [runInNewContext](./api.md#runinnewcontext) 选项,并设置为 `false`)。现有的应用程序可以继续运行,但建议你迁移到新的推荐规范
99
1010
## 什么是服务器端渲染(SSR)?
1111

@@ -19,7 +19,7 @@ Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏
1919

2020
- 更好的 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面。
2121

22-
请注意,截至目前,Google 和 Bing 可以很好对同步 JavaScript 应用程序进行索引。在这里,同步是关键。如果您的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后再行抓取页面内容。也就是说,如果 SEO 对你的站点至关重要,而你的页面又是异步获取内容,则你可能需要服务器端渲染(SSR)解决此问题。
22+
请注意,截至目前,Google 和 Bing 可以很好对同步 JavaScript 应用程序进行索引。在这里,同步是关键。如果你的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后再行抓取页面内容。也就是说,如果 SEO 对你的站点至关重要,而你的页面又是异步获取内容,则你可能需要服务器端渲染(SSR)解决此问题。
2323

2424
- 更快的内容到达时间(time-to-content),特别是对于缓慢的网络情况或运行缓慢的设备。无需等待所有的 JavaScript 都完成下载并执行,才显示服务器渲染的标记,所以你的用户将会更快速地看到完整渲染的页面。通常可以产生更好的用户体验,并且对于那些「内容到达时间(time-to-content)与转化率直接相关」的应用程序而言,服务器端渲染(SSR)至关重要。
2525

@@ -29,22 +29,22 @@ Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏
2929

3030
- 涉及构建设置和部署的更多要求。与可以部署在任何静态文件服务器上的完全静态单页面应用程序(SPA)不同,服务器渲染应用程序,需要处于 Node.js server 运行环境。
3131

32-
- 更多的服务器端负载。在 Node.js 中渲染完整的应用程序,显然会比仅仅提供静态文件的 server 更加大量占用 CPU 资源(CPU-intensive - CPU 密集),因此如果您预料在高流量环境(high traffic)下使用,请准备相应的服务器负载,并明智地采用缓存策略。
32+
- 更多的服务器端负载。在 Node.js 中渲染完整的应用程序,显然会比仅仅提供静态文件的 server 更加大量占用 CPU 资源(CPU-intensive - CPU 密集),因此如果你预料在高流量环境(high traffic)下使用,请准备相应的服务器负载,并明智地采用缓存策略。
3333

34-
在对您的应用程序使用服务器端渲染(SSR)之前,您应该问第一个问题是否真的需要它。这主要取决于内容到达时间(time-to-content)对应用程序的重要程度。例如,如果您正在构建一个内部仪表盘,初始加载时的额外几百毫秒并不重要,这种情况下去使用服务器端渲染(SSR)将是一个小题大作之举。然而,内容到达时间(time-to-content)要求是绝对关键的指标,在这种情况下,服务器端渲染(SSR)可以帮助您实现最佳的初始加载性能
34+
在对你的应用程序使用服务器端渲染(SSR)之前,你应该问第一个问题是否真的需要它。这主要取决于内容到达时间(time-to-content)对应用程序的重要程度。例如,如果你正在构建一个内部仪表盘,初始加载时的额外几百毫秒并不重要,这种情况下去使用服务器端渲染(SSR)将是一个小题大作之举。然而,内容到达时间(time-to-content)要求是绝对关键的指标,在这种情况下,服务器端渲染(SSR)可以帮助你实现最佳的初始加载性能
3535

3636
## 服务器端渲染 vs 预渲染(SSR vs Prerendering)
3737

38-
如果您调研服务器端渲染(SSR)只是用来改善少数营销页面(例如 `/`, `/about`, `/contact` 等)的 SEO,那么您可能需要**预渲染**。无需使用 web 服务器实时动态编译 HTML,而是使用预渲染方式,在构建时(build time)简单地生成针对特定路由的静态 HTML 文件。优点是设置预渲染更简单,并可以将您的前端作为一个完全静态的站点
38+
如果你调研服务器端渲染(SSR)只是用来改善少数营销页面(例如 `/`, `/about`, `/contact` 等)的 SEO,那么你可能需要**预渲染**。无需使用 web 服务器实时动态编译 HTML,而是使用预渲染方式,在构建时(build time)简单地生成针对特定路由的静态 HTML 文件。优点是设置预渲染更简单,并可以将你的前端作为一个完全静态的站点
3939

40-
如果您使用 webpack,您可以使用 [prerender-spa-plugin](https://github.com/chrisvfritz/prerender-spa-plugin) 轻松地添加预渲染。它已经被 Vue 应用程序广泛测试 - 事实上,[作者](https://github.com/chrisvfritz)是 Vue 核心团队的成员。
40+
如果你使用 webpack,你可以使用 [prerender-spa-plugin](https://github.com/chrisvfritz/prerender-spa-plugin) 轻松地添加预渲染。它已经被 Vue 应用程序广泛测试 - 事实上,[作者](https://github.com/chrisvfritz)是 Vue 核心团队的成员。
4141

4242
## 关于此指南
4343

4444
本指南专注于,使用 Node.js server 的服务器端单页面应用程序渲染。将 Vue 服务器端渲染(SSR)与其他后端设置进行混合使用,是其它后端自身的一个主题,本指南不包括在内。
4545

46-
本指南将会非常深入,并且假设您已经熟悉 Vue.js 本身,并且具有 Node.js 和 webpack 的相当不错的应用经验。如果您具有更高级解决方案,可以提供一个平缓的开箱即用体验,您应该去尝试使用 [Nuxt.js](http://nuxtjs.org/)。它建立在同等的 Vue 技术栈之上,但抽象出很多模板,并提供了一些额外的功能,例如静态站点生成。但是,如果您需要更直接地控制应用程序的结构,Nuxt.js 并不适合这种使用场景。无论如何,阅读本指南将更有助于更好地了解一切如何运行。
46+
本指南将会非常深入,并且假设你已经熟悉 Vue.js 本身,并且具有 Node.js 和 webpack 的相当不错的应用经验。如果你倾向于使用提供了平滑开箱即用体验的更高层次解决方案,你应该去尝试使用 [Nuxt.js](http://nuxtjs.org/)。它建立在同等的 Vue 技术栈之上,但抽象出很多模板,并提供了一些额外的功能,例如静态站点生成。但是,如果你需要更直接地控制应用程序的结构,Nuxt.js 并不适合这种使用场景。无论如何,阅读本指南将更有助于更好地了解一切如何运行。
4747

48-
当您阅读时,参考官方 [HackerNews Demo](https://github.com/vuejs/vue-hackernews-2.0/) 将会有所帮助,此示例使用了本指南涵盖的大部分技术。
48+
当你阅读时,参考官方 [HackerNews Demo](https://github.com/vuejs/vue-hackernews-2.0/) 将会有所帮助,此示例使用了本指南涵盖的大部分技术。
4949

5050
最后,请注意,本指南中的解决方案不是限定的 - 我们发现它们对我们来说很好,但这并不意味着无法继续改进。可能会在未来持续改进,欢迎通过随意提交 pull request 作出贡献!

zh/head.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
类似于资源注入,Head 管理遵循相同的理念:我们可以在组件的生命周期中,将数据动态地追加到渲染`上下文`(render context),然后在`模板`中的占位符替换为这些数据。
44

5-
> 在 2.3.2+ 的版本,您可以通过 `this.$ssrContext` 来直接访问组件中的服务器端渲染上下文(SSR context)。在旧版本中,您必须通过将其传递给 `createApp()` 并将其暴露于根实例的 `$options` 上,才能手动注入服务器端渲染上下文(SSR context) - 然后子组件可以通过 `this.$root.$options.ssrContext` 来访问它。
5+
> 在 2.3.2+ 的版本,你可以通过 `this.$ssrContext` 来直接访问组件中的服务器端渲染上下文(SSR context)。在旧版本中,你必须通过将其传递给 `createApp()` 并将其暴露于根实例的 `$options` 上,才能手动注入服务器端渲染上下文(SSR context) - 然后子组件可以通过 `this.$root.$options.ssrContext` 来访问它。
66
77
我们可以编写一个简单的 mixin 来完成标题管理:
88

@@ -81,4 +81,4 @@ export default {
8181

8282
---
8383

84-
使用相同的策略,您可以轻松地将此 mixin 扩展为通用的头部管理工具(generic head management utility)。
84+
使用相同的策略,你可以轻松地将此 mixin 扩展为通用的头部管理工具(generic head management utility)。

0 commit comments

Comments
 (0)