vue如何利用vue-server-renderer做服务端渲染

本篇博文初步探索使用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:`
        

gcc dfg

`, methods: { tm: function (e) { console.log(e); } } }) router.get('/',ctx=>{ //拼接html字符串 render.renderToString(vue,(err,html)=>{ if(!err){ console.log(html); ctx.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

vue如何利用vue-server-renderer做服务端渲染_第1张图片

后台返回的html字符串

vue如何利用vue-server-renderer做服务端渲染_第2张图片

此处我们发现虽然后端已经生成了html 包含vue语法,但是前端页面无法交互,因此我i们还需要前端再次用vue渲染该页面,以增加前端交互部分

你可能感兴趣的:(vue项目源码分享)