一、下载安装

$ npm install express-generator -g

使用express命令创建项目(-e:ejs模板引擎)

$ express -e myapp

2、下载 vue vue-server-renderer

npm install vue vue-server-renderer --save

二、入门示例

在项目根目录下创建index.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: `

访问的 URL 是: {{ url }}

`

})

renderer.renderToString(app, (err, html) => {

if (err) {

res.status(500).end('Internal Server Error')

return

}

res.end(`

Hello

`)

})

})

server.listen(4000)

命令行启动

$ node index.js

访问网址:locathost:4000

三、使用模板

views/index.html

{{ title }}

{{ content }}

index.js

const fs = require('fs')

const Vue = require('vue')

const server = require('express')()

const renderer = require('vue-server-renderer').createRenderer()

server.get('*', (req, res) => {

const app = new Vue({

data: {

title: 'SSR',

content: 'hello Vue SSR.'

},

template: fs.readFileSync('./views/index.html', 'utf-8')

})

renderer.renderToString(app, (err, html) => {

if (err) {

res.status(500).end('Internal Server Error')

return

}

res.end(html)

})

})

server.listen(4000)

四、模板插值

views/index.html

{{{ meta }}}

{{ title }}

注意:这一行注释不能少,因为这里将是应用程序 HTML 标记注入的地方,否则会报错

index.js

const fs = require('fs')

const Vue = require('vue')

const server = require('express')()

const renderer = require('vue-server-renderer').createRenderer({

template: fs.readFileSync('./views/index.html', 'utf-8')

})

server.get('*', (req, res) => {

const app = new Vue({

data: {

url: req.url

},

template: `

访问的 URL 是: {{ url }}

`

})

const context = {

title: 'vue ssr',

meta: `

`

}

renderer.renderToString(app, context, (err, html) => {

if (err) {

res.status(500).end('Internal Server Error')

return

}

res.end(html)

})

})

server.listen(4000)

五、app封装

views/index.html

{{{ meta }}}

{{ title }}

routes/app.js

const Vue = require('vue')

module.exports = function createApp(context) {

return new Vue({

data: {

url: context.url

},

template: `

访问的 URL 是: {{ url }}

`

})

}

index.js

const fs = require('fs')

const Vue = require('vue')

const server = require('express')()

const renderer = require('vue-server-renderer').createRenderer({

template: fs.readFileSync('./views/index.html', 'utf-8')

})

const createApp = require('./routes/app')

server.get('*', (req, res) => {

const context = {

title: 'vue ssr',

meta: `

`,

url: req.url

}

const app = createApp(context)

renderer.renderToString(app, context, (err, html) => {

if (err) {

res.status(500).end('Internal Server Error')

return

}

res.end(html)

})

})

server.listen(4000)

vue ssr java_Vue-SSR入门相关推荐

  1. Vue SSR 渲染 Nuxt3 入门学习

    Vue SSR 渲染 Nuxt3 入门学习 SPA应用:也就是单页应用,这些多是在客户端的应用,不利于进行SEO优化(搜索引擎优化). SSR应用:在服务端进行渲染,渲染完成后返回给客户端,每个页面有 ...

  2. Nuxt.js开启SSR渲染快速入门

    Nuxt.js开启SSR渲染快速入门 第一节:nuxt.js相关概述 nuxt.js简单的说是Vue.js的通用框架,最常用的就是用来作SSR(服务器端渲染).Vue.js是开发SPA(单页应用)的, ...

  3. 2017 Vue.js 2快速入门指南

    注意,据部分读者反映本文水多,怕湿身者勿进.后续推荐详解 Vue & Vuex 实践 2017 Vue.js 2快速入门指南翻译自Vue.js 2 Quickstart Tutorial 20 ...

  4. vue源码学习--vue源码学习入门

    本文为开始学习vue源码的思路整理.在拿到vue项目源码的之后看到那些项目中的文件夹,会很困惑,不知道每个文件夹内的世界,怎么变换,怎样的魔力,最后产生了vue框架.学习源码也无从学起.我解决了这些困 ...

  5. vue.js的快速入门使用

    1. vue.js的快速入门使用 1.1 vue.js库的下载 vue.js是目前前端web开发最流行的工具库,由尤雨溪在2014年2月发布的. 另外几个常见的工具库:react.js /angula ...

  6. 1. vue.js的快速入门使用

    1. vue.js的快速入门使用1.1 vue.js库的下载1.2 vue.js库的基本使用1.3 vue.js的M-V-VM思想1.4 显示数据2. 常用指令2.1 操作属性2.2 事件绑定例如:完 ...

  7. Vue (一) --- vue.js的快速入门使用

    =-----------------------------------把现在的工作做好,才能幻想将来的事情,专注于眼前的事情,对于尚未发生的事情而陷入无休止的忧虑之中,对事情毫无帮助,反而为自己凭添 ...

  8. Vue项目构建开发入门

    Vue项目构建开发入门 开篇:Vue CLI 3 项目构建基础 大家好,当你点进这个标题,开始阅读本章的时候,说明你对 Vue.js 是充满好奇心和求知欲的.我之前写过一篇文章,这样评价 Vue.js ...

  9. Vue、Vuejs从入门到精通 | Vue CLI详解

    学习视频来源:B站<Vue.Vuejs从入门到精通> 个人在视频学习过程中也同步完成课堂练习等,现将授课材料与个人笔记分享出来. sudo npm install -g @vue/cli ...

  10. vue之 render函数 入门篇

    目录 vue之 render函数 入门篇 简单渲染一个 h1 标签 简单渲染一个 ul 与 li 默认插槽 与 具名插槽 vue之 render函数 入门篇 render: function (cre ...

最新文章

  1. JavaScript高级程序设计基本概念
  2. SQL索引学习-聚集索引
  3. 应对 Job 场景,Serverless 如何帮助企业便捷上云
  4. Jenkins启动时提示:Starting Jenkins Jenkins requires Java8 or later, but you are running 1.7.0
  5. span 标记 width 设置
  6. 知乎热议:嵌入式开发中C++好用吗?
  7. LeetCode 382. 链表随机节点(概率)
  8. html h1 背影设为图片,CSS Backgrounds(背景)
  9. Python案例:按键测试
  10. pandas练习题二
  11. 学堂云3大学计算机基础答案,学堂云3答案查询公众号
  12. 人工智能:卷积神经网络及YOLO算法 入门详解与综述(二)
  13. 开发工具之 Snipaste(超级截图工具)
  14. NSX-T业务转发04—— 多层Tier0Tier1路由
  15. 计算机换色带技巧,平乐园电脑维修店教你爱普生针式打印机更换色带基本办法...
  16. python3 输出 26个大小写英文字母
  17. 浏览器打开任意可执行exe文件方法
  18. 【oracle工具】plsqldev美化规则文件详细解释(关键字大写,标识符小写等规则)
  19. 微信小程序 --- 不在以下合法域名列表中请参考文档
  20. JAVA个人博客系统毕业设计,个人博客系统设计与实现,个人博客网页设计毕设作品

热门文章

  1. 为什么学计算机会后悔?不好找实习是真的吗?
  2. Bootstrap图标按钮
  3. Qt样式表之 QSS 语法介绍;QLineEdit、
  4. php qq空间 图片,利用PHP生成QQ空间个人中心自动变换图片
  5. 利用JMeter批量注册用户
  6. 网络摄像头RTSP协议视频平台EasyNVR录像计划模块开发过程
  7. 知识图谱:属性图数据模型与Cypher查询语言
  8. 报税时提示服务器验证证书失败,服务器证书验证失败 服务器证书验证地址出错怎么办...
  9. Android-在Android studio中实现远程服务(Service)AIDL
  10. 伟大的航线 [set / 代码待补]