Skip to content

Commit bb8fb6f

Browse files
committed
Merge remote-tracking branch 'upstream/master' into working
# Conflicts: # en/README.md # en/SUMMARY.md # en/api.md # en/basic.md Signed-off-by: Bruno Lesieur <[email protected]>
2 parents f7a778a + 30a085b commit bb8fb6f

File tree

8 files changed

+93
-19
lines changed

8 files changed

+93
-19
lines changed

en/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Si vous utilisez webpack, vous pouvez facilement ajouter du pré-rendu avec le p
4141

4242
## À propos de ce guide
4343

44-
Ce guide est dédié au rendu côté serveur des applications monopages utilisant Node.js en tant que serveur web. Utiliser le SSR de Vue avec une autre configuration serveur est un sujet qui ne sera pas abordé dans ce guide.
44+
Ce guide est dédié au rendu côté serveur des applications monopages utilisant Node.js en tant que serveur web. Utiliser le SSR de Vue avec une autre configuration serveur est un sujet brièvement abordé dans une [section dédiée](./non-node.md).
4545

4646
Ce guide va réellement entrer dans le détail et présuppose que vous êtes déjà familiarisé avec Vue.js et que vous avez un niveau de connaissance correcte concernant Node.js et webpack. Si vous préférez une solution de haut niveau fournissant une expérience de développement prête à l'emploi, vous devriez probablement essayer [Nuxt.js](https://nuxtjs.org/). Il est construit par-dessus l'écosystème de Vue et vous fournit des éléments préconçus ainsi que des fonctionnalités supplémentaires pour générer des sites web statiques. Il ne vous conviendra cependant pas si vous souhaitez avoir un contrôle plus direct sur la structure de votre application. Dans tous les cas, il reste toujours intéressant de parcourir ce guide pour mieux comprendre comment chaque élément fonctionne avec le reste.
4747

en/SUMMARY.md

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- [Gestion des entêtes](head.md)
1111
- [Mise en cache](caching.md)
1212
- [Envoi par flux](streaming.md)
13+
- [Utilisation dans des environnements autre que Node.js](non-node.md)
1314
- [Référence de l'API](api.md)
1415
- [createRenderer](api.md#createrendereroptions)
1516
- [createBundleRenderer](api.md#createbundlerendererbundle-options)

en/api.md

+30-4
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,35 @@ Voyez l'[Introduction au moteur de dépaquetage](./bundle-renderer.md) et la [Co
3030

3131
## `Class: Renderer`
3232

33-
- #### `renderer.renderToString(vm[, context], callback)`
33+
- #### `renderer.renderToString(vm[, context, callback]): ?Promise<string>`
3434

3535
Fait le rendu d'une instance de Vue sous forme de chaine de caractères. L'objet de contexte est optionnel. La fonction de rappel est une fonction de rappel typique de Node.js avec en premier argument l'erreur potentielle et en second argument la chaine de caractères du rendu.
3636

37-
- #### `renderer.renderToStream(vm[, context])`
37+
In 2.5.0+, the callback is also optional. When no callback is passed, the method returns a Promise which resolves to the rendered HTML.
3838

39+
<<<<<<< HEAD
3940
Fait le rendu d'une instance de Vue sous forme de flux. L'objet de contexte est optionnel. Voir l'[Envoi par flux](./streaming.md) pour plus de détails.
41+
=======
42+
- #### `renderer.renderToStream(vm[, context]): stream.Readable`
43+
44+
Render a Vue instance to a [Node.js readble stream](https://nodejs.org/dist/latest-v8.x/docs/api/stream.html#stream_readable_streams). The context object is optional. See [Streaming](./streaming.md) for more details.
45+
>>>>>>> upstream/master
4046
4147
## `Class: BundleRenderer`
4248

43-
- #### `bundleRenderer.renderToString([context, ]callback)`
49+
- #### `bundleRenderer.renderToString([context, callback]): ?Promise<string>`
4450

4551
Fait le rendu d'un paquetage sous forme de chaine de caractères. L'objet de contexte est optionnel. La fonction de rappel est une fonction de rappel typique de Node.js avec en premier argument l'erreur potentielle et en second argument la chaine de caractères du rendu.
4652

47-
- #### `bundleRenderer.renderToStream([context])`
53+
In 2.5.0+, the callback is also optional. When no callback is passed, the method returns a Promise which resolves to the rendered HTML.
54+
55+
- #### `bundleRenderer.renderToStream([context]): stream.Readable`
4856

57+
<<<<<<< HEAD
4958
Fait le rendu d'un paquetage sous forme de flux. L'objet de contexte est optionnel. Voir l'[Envoi par flux](./streaming.md) pour plus de détails.
59+
=======
60+
Render the bundle to a [Node.js readble stream](https://nodejs.org/dist/latest-v8.x/docs/api/stream.html#stream_readable_streams). The context object is optional. See [Streaming](./streaming.md) for more details.
61+
>>>>>>> upstream/master
5062
5163
## Options de `Renderer`
5264

@@ -67,7 +79,13 @@ Voyez l'[Introduction au moteur de dépaquetage](./bundle-renderer.md) et la [Co
6779

6880
- `context.state`: (Object) L'état initial du store Vuex devrait être injecté dans la page sous la variable `window.__INITIAL_STATE__`. Le JSON en ligne est automatiquement désinfecté avec [serialize-javascript](https://github.com/yahoo/serialize-javascript) pour éviter les injections XSS.
6981

82+
<<<<<<< HEAD
7083
En plus, quand `clientManifest` est fourni, le modèle de page injecte automatiquement les éléments suivants :
84+
=======
85+
In 2.5.0+, the embed script also self-removes in production mode.
86+
87+
In addition, when `clientManifest` is also provided, the template automatically injects the following:
88+
>>>>>>> upstream/master
7189
7290
- JavaScript client et fichiers CSS nécessaires pour le rendu (avec les fragments asynchrones automatiquement déduits),
7391
- utilisation optimale des indices de ressources `<link rel="preload/prefetch">` pour le rendu de la page.
@@ -125,6 +143,14 @@ Voyez l'[Introduction au moteur de dépaquetage](./bundle-renderer.md) et la [Co
125143
})
126144
```
127145

146+
- #### `shouldPrefetch`
147+
148+
- 2.5.0+
149+
150+
A function to control what files should have `<link rel="prefetch">` resource hints generated.
151+
152+
By default, all assets in async chunks will be prefetched since this is a low-priority directive; however you can customize what to prefetch in order to better control bandwidth usage. This option expects the same function signature as `shouldPreload`.
153+
128154
- #### `runInNewContext`
129155

130156
- 2.3.0+

en/basic.md

+7
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ renderer.renderToString(app, (err, html) => {
3232
console.log(html)
3333
// => <div data-server-rendered="true">Hello World</div>
3434
})
35+
36+
// Dans la 2.5.0+, retourne une promesse si aucune fonction de rappel n'est passée :
37+
renderer.renderToString.then(html => {
38+
console.log(html)
39+
}).catch(err => {
40+
console.error(err)
41+
})
3542
```
3643

3744
## Intégration avec un serveur

en/non-node.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Usage in non-Node.js Environments
2+
3+
The default build of `vue-server-renderer` assumes a Node.js environment, which makes it unusable in alternative JavaScript environments such as [php-v8js](https://github.com/phpv8/v8js) or [Nashorn](https://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/). In 2.5 we have shipped a build in `vue-server-renderer/basic.js` that is largely environment-agnostic, which makes it usable in the environments mentioned above.
4+
5+
For both environments, it is necessary to first prepare the environment by mocking the `global` and `process` objects, with `process.env.VUE_ENV` set to `"server"`, and `process.env.NODE_ENV` set to `"development"` or `"production"`.
6+
7+
In Nashorn, it may also be necessary to provide a polyfill for `Promise` or `setTimeout` using Java's native timers.
8+
9+
Example usage in php-v8js:
10+
11+
``` php
12+
<?php
13+
$vue_source = file_get_contents('/path/to/vue.js');
14+
$renderer_source = file_get_contents('/path/to/vue-server-renderer/basic.js');
15+
$app_source = file_get_contents('/path/to/app.js');
16+
17+
$v8 = new V8Js();
18+
19+
$v8->executeString('var process = { env: { VUE_ENV: "server", NODE_ENV: "production" }}; this.global = { process: process };');
20+
$v8->executeString($vue_source);
21+
$v8->executeString($renderer_source);
22+
$v8->executeString($app_source);
23+
?>
24+
```
25+
26+
---
27+
28+
``` js
29+
// app.js
30+
var vm = new Vue({
31+
template: `<div>{{ msg }}</div>`,
32+
data: {
33+
msg: 'hello'
34+
}
35+
})
36+
37+
// exposed by vue-server-renderer/basic.js
38+
renderVueComponentToString(vm, (err, res) => {
39+
print(res)
40+
})
41+
```

ja/SUMMARY.md

+9-8
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,19 @@
1010
- [ヘッドの管理](head.md)
1111
- [キャッシュ](caching.md)
1212
- [ストリーミング](streaming.md)
13+
- [非 Node.js 環境における使用](non-node.md)
1314
- [API リファレンス](api.md)
1415
- [createRenderer](api.md#createrendereroptions)
1516
- [createBundleRenderer](api.md#createbundlerendererbundle-options)
1617
- [クラス: Renderer](api.md#class-renderer)
1718
- [クラス: BundleRenderer](api.md#class-bundlerenderer)
1819
- [Renderer 生成時のオプション](api.md#renderer-options)
19-
- [template](api.md#template)
20-
- [clientManifest](api.md#clientmanifest)
21-
- [inject](api.md#inject)
22-
- [shouldPreload](api.md#shouldpreload)
23-
- [runInNewContext](api.md#runinnewcontext)
24-
- [basedir](api.md#basedir)
25-
- [cache](api.md#cache)
26-
- [directives](api.md#directives)
20+
- [template](api.md#template)
21+
- [clientManifest](api.md#clientmanifest)
22+
- [inject](api.md#inject)
23+
- [shouldPreload](api.md#shouldpreload)
24+
- [runInNewContext](api.md#runinnewcontext)
25+
- [basedir](api.md#basedir)
26+
- [cache](api.md#cache)
27+
- [directives](api.md#directives)
2728
- [webpack プラグイン](api.md#webpack-plugins)

package-lock.json

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,8 @@
2323
},
2424
"homepage": "https://github.com/vuejs/vue-ssr-docs#readme",
2525
"devDependencies": {
26+
"gitbook-plugin-theme-vuejs": "^1.1.0",
2627
"gitbook-plugin-edit-link": "^2.0.2",
2728
"gitbook-plugin-github": "^2.0.0"
28-
},
29-
"dependencies": {
30-
"gitbook-plugin-theme-vuejs": "^1.0.0"
3129
}
3230
}

0 commit comments

Comments
 (0)