vue如何利用vue-server-renderer做服务端渲染
本篇博文初步探索使用vue-server-renderer做服务端渲染一个最简单的页面,学会如何用vue做ssr环境准备koa,koa-router,vue,vue-server-renderercnpm install vue --savecnpm install vue-server-render --save-dcnpm install koa --savacnpm in...
·
本篇博文初步探索使用vue-server-renderer做服务端渲染一个最简单的页面,学会如何用vue做ssr
环境准备
koa,koa-router,vue,vue-server-renderer
cnpm install vue --save
cnpm install vue-server-render --save-d
cnpm install koa --sava
cnpm install koa-router --save
代码
vueserver.js
const Koa = require("koa");
const Router = require("koa-router");
const Vue = require("vue");
const render = require("vue-server-renderer").createRenderer();
const app = new Koa();
const router = new Router();
const vue = new Vue({
data:{
name:"gcc的第一个vue ssr 页面"
},
template:`
<div>
<h1>gcc dfg</h1>
<button @click="tm(123)">ddddd</button>
</div>
`,
methods: {
tm: function (e) {
console.log(e);
}
}
})
router.get('/',ctx=>{
//拼接html字符串
render.renderToString(vue,(err,html)=>{
if(!err){
console.log(html);
ctx.body = `<html><body>${html}</body></html>`
}
})
})
app.use(router.routes());
app.listen(3650);
package.json
{
"name": "ssr",
"version": "1.0.0",
"description": "gcc le",
"main": "index.js",
"dependencies": {
"_kao@1.3.29@kao": "^1.3.29",
"kao": "^1.3.29",
"koa": "^2.11.0",
"koa-ejs": "^4.3.0",
"koa-router": "^8.0.8",
"vue": "^2.6.11"
},
"devDependencies": {
"vue-server-renderer": "^2.6.11"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "gcc",
"license": "ISC"
}
运行效果
nodemon vueserver.js
后台返回的html字符串
此处我们发现虽然后端已经生成了html 包含vue语法,但是前端页面无法交互,因此我i们还需要前端再次用vue渲染该页面,以增加前端交互部分
更多推荐
已为社区贡献3条内容
所有评论(0)