Skip to content

Commit 15d5970

Browse files
Update README.md (#270)
* Update README.md * Update README.md * Update README.md * add full demo code * Update README.md * Update README.md
1 parent 17302e0 commit 15d5970

File tree

2 files changed

+90
-2
lines changed

2 files changed

+90
-2
lines changed

docs/guide/README.md

+45-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ Notice the `<!--vue-ssr-outlet-->` comment -- this is where your app's markup wi
101101
We can then read and pass the file to the Vue renderer:
102102

103103
``` js
104-
const renderer = createRenderer({
104+
const renderer = require('vue-server-renderer').createRenderer({
105105
template: require('fs').readFileSync('./index.template.html', 'utf-8')
106106
})
107107

@@ -155,3 +155,47 @@ In addition, the template supports some advanced features such as:
155155
- Auto injection and XSS prevention when embedding Vuex state for client-side hydration.
156156

157157
We will discuss these when we introduce the associated concepts later in the guide.
158+
159+
## full demo codes
160+
161+
```js
162+
163+
const Vue = require('vue');
164+
const server = require('express')();
165+
166+
const template = require('fs').readFileSync('./index.template.html', 'utf-8');
167+
168+
const renderer = require('vue-server-renderer').createRenderer({
169+
template,
170+
});
171+
172+
const context = {
173+
title: 'vue ssr',
174+
metas: `
175+
<meta name="keyword" content="vue,ssr">
176+
<meta name="description" content="vue srr demo">
177+
`,
178+
};
179+
180+
server.get('*', (req, res) => {
181+
const app = new Vue({
182+
data: {
183+
url: req.url
184+
},
185+
template: `<div>The visited URL is: {{ url }}</div>`,
186+
});
187+
188+
renderer
189+
.renderToString(app, context, (err, html) => {
190+
console.log(html);
191+
if (err) {
192+
res.status(500).end('Internal Server Error')
193+
return;
194+
}
195+
res.end(html);
196+
});
197+
})
198+
199+
server.listen(8080);
200+
201+
```

docs/zh/guide/README.md

+45-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ server.listen(8080)
101101
然后,我们可以读取和传输文件到 Vue renderer 中:
102102

103103
``` js
104-
const renderer = createRenderer({
104+
const renderer = require('vue-server-renderer').createRenderer({
105105
template: require('fs').readFileSync('./index.template.html', 'utf-8')
106106
})
107107

@@ -155,3 +155,47 @@ renderer.renderToString(app, context, (err, html) => {
155155
- 在嵌入 Vuex 状态进行客户端融合(client-side hydration)时,自动注入以及 XSS 防御。
156156

157157
在之后的指南中介绍相关概念时,我们将详细讨论这些。
158+
159+
## 完整实例代码
160+
161+
```js
162+
const Vue = require('vue');
163+
const server = require('express')();
164+
165+
const template = require('fs').readFileSync('./index.template.html', 'utf-8');
166+
167+
const renderer = require('vue-server-renderer').createRenderer({
168+
template,
169+
});
170+
171+
const context = {
172+
title: 'vue ssr',
173+
metas: `
174+
<meta name="keyword" content="vue,ssr">
175+
<meta name="description" content="vue srr demo">
176+
`,
177+
};
178+
179+
server.get('*', (req, res) => {
180+
const app = new Vue({
181+
data: {
182+
url: req.url
183+
},
184+
template: `<div>访问的 URL 是: {{ url }}</div>`,
185+
});
186+
187+
renderer
188+
.renderToString(app, context, (err, html) => {
189+
console.log(html);
190+
if (err) {
191+
res.status(500).end('Internal Server Error')
192+
return;
193+
}
194+
res.end(html);
195+
});
196+
})
197+
198+
server.listen(8080);
199+
200+
```
201+

0 commit comments

Comments
 (0)