根据官网学习vueSSR

根据 官网例子一步步实现vue ssr
所用标题对应官网标题

基本用法

  1. 新建一个文件夹 ssr
    cd ssr
    npm init -y
    npm install vue vue-server-renderer express --save 或者yarn add vue vue-server-renderer express --save

  2. 新建文件server.js
    server.js

// 第 1 步:创建一个 Vue 实例
const Vue = require('vue')
const app = new Vue({
  template: `<div>Hello World</div>`
})
// 第 2 步:创建一个 renderer
const renderer = require('vue-server-renderer').createRenderer()
// 第 3 步:将 Vue 实例渲染为 HTML
renderer.renderToString(app, (err, html) => {
  if (err) throw err
  console.log(html)
})
// 在 2.5.0+,如果没有传入回调函数,则会返回 Promise:
renderer.renderToString(app).then(html => {
  console.log(html)
}).catch(err => {
  console.error(err)
})

运行命令node server.js,控制台会输出两行<div data-server-rendered="true">Hello World</div>

  1. 修改server.js
const Vue = require('vue')
const server = require('express')()
const renderer = require('vue-server-renderer').createRenderer()

server.get('*', (req, res) => {
  const app = new Vue({
    data: {
      url: req.url
    },
    template: `<div>访问的 URL 是: {{ url }}</div>`
  })

  renderer.renderToString(app, (err, html) => {
    if (err) {
      res.status(500).end('Internal Server Error')
      return
    }
    res.end(`
      <!DOCTYPE html>
      <html lang="en">
        <head>
        <meta charset="utf-8">
        <title>vue ssr</title>
        </head>
        <body>${html}</body>
      </html>
    `)
  })
})

server.listen(8080,()=>{
    console.log('已监听 localhost:8080')
})

运行命令node server.js,控制台会输出已监听 localhost:8080
浏览器打开 localhost:8080
根据官网学习vueSSR

  1. 使用页面模版,新建文件 index.template.html
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>vue ssr</title>
</head>

<body>
    <!--vue-ssr-outlet-->
</body>

</html>

修改server.js,并运行,结果不变.
根据官网学习vueSSR

源码结构

将server.js 拆分为app.js 和 server.js
app.js

const Vue = require('vue')

module.exports = function createApp (context) {
  return new Vue({
    data: {
      url: context.url
    },
    template: `<div>访问的 URL 是: {{ url }}</div>`
  })
}

server.js
根据官网学习vueSSR
运行node server.js,结果不变.

使用 webpack 的源码结构

另起一个项目,使用vue-cli3脚手架搭建,根据自己需求选择
根据官网学习vueSSR
根据官网学习vueSSR

上一篇:Fiddler如何模拟弱网环境进行测试


下一篇:linux – Atom在Ubuntu 15.10上运行速度令人难以置信 – 关于渲染器的事情?