基于vue-cli项目添加服务端渲染
两个示例的git地址:
1. 我的环境
2. 方式一:使用prerender-spa-plugin插件获得SSR的效果。
2.1 说明

2.2 初始化
1 |
vue init webpack vue-prerender-demo //此文章都是在webpack基础上配置的 |
1 |
cd vue-prerender-demo |
2.3 配置
2.4 开始
1. 安装 prerender-spa-plugin, 因为依赖phantom js,phantom 的安装比较蛋疼,太耗时了~
1 |
npm install prerender-spa-plugin -D |
2. 开始 prerender 相关的配置:
1 |
//引用 |
3. 编译
1 |
npm run build |

4. 验证
1 |
cd dist //进入到对应目录 |


2.5 优缺点
3. 方式二:使用官方提供的轮子在node端做SSR
3.1 说明
3.2 约束
3.3 准备工作
1 |
vue init webpack vue-ssr-demo |
1 |
cd vue-ssr-demo |
3.4 开始折腾
1. 首先安装 ssr 支持
1 |
npm i -D vue-server-renderer |
2. 增加路由test与页面
1 |
<template> |
3. 在src目录下创建两个js:
1 |
src |
4. 修改router配置。
1 |
import Vue from 'vue' |
5. 改造main.js
1 |
import Vue from 'vue' |
6. entry-client.js加入以下内容:
1 |
import { createApp } from './main'
|
7. entry-server.js
1 |
// entry-server.js |
8. webpack配置
1 |
build |
9. webpack 客户端的配置
1 |
const VueSSRClientPlugin = require('vue-server-renderer/client-plugin')
|
10. webpack 服务器端的配置
1 |
const webpack = require('webpack')
|
1 |
baseConfig.module.rules[1].options = '' // 去除分离css打包的插件 |
11. 配置package.json增加打包服务器端构建命令并修改原打包命令
1 |
"scripts": {
|
12. 修改index.html
1 |
<!DOCTYPE html> |
13. 运行构建命令
1 |
npm run build |
14. 构建服务器端(官方例子使用的express,所以此 demo 将采用koa2来作为服务器端,当然,无论是 koa 与 express 都不重要…)
1 |
npm i -S koa |
1 |
const Koa = require('koa')
|
15. 编写服务端代码
1 |
const Koa = require('koa')
|
1 |
node server.js |
16. 大功告成


3.4 优缺点
基于vue-cli项目添加服务端渲染的更多相关文章
- 改造@vue/cli项目为服务端渲染-ServerSideRender
VUE SEO方案二 - SSR服务端渲染 在上一章中,我们分享了预渲染的方案来解决SEO问题,个人还是很中意此方案的,既简单又能解决大部分问题.但是也有着一定的缺陷,所以我们继续来看下一个方案--服 ...
- 使用 Vue 2.0 实现服务端渲染的 HackerNews
Vue 2.0 支持服务端渲染 (SSR),并且是流式的,可以做组件级的缓存,这使得极速渲染成为可能.同时, 和 2.0 也都能够配合 SSR 提供同构路由和客户端 state hydration.v ...
- 使用 PHP 来做 Vue.js 的 SSR 服务端渲染
对于客户端应用来说,服务端渲染是一个热门话题.然而不幸的是,这并不是一件容易的事,尤其是对于不用 Node.js 环境开发的人来说. 我发布了两个库让 PHP 从服务端渲染成为可能.spatie/se ...
- 基于Vue/React项目的移动端适配方案
本文的目标是通过下文介绍的适配方案,使用vue或react开发移动端及H5的时候,不需要再关心移动设备的大小,只需要按照固定设计稿的px值布局,提升开发效率. 下文给出了本人分别使用create-re ...
- vue/cli项目添加外部js文件的一个方法
有一个util.js文件,内容如下 function Util () { ... } export default new Util() 可以在main.js里面通过import引入js import ...
- 实例PK(Vue服务端渲染 VS Vue浏览器端渲染)
Vue 2.0 开始支持服务端渲染的功能,所以本文章也是基于vue 2.0以上版本.网上对于服务端渲染的资料还是比较少,最经典的莫过于Vue作者尤雨溪大神的 vue-hacker-news.本人在公司 ...
- Vue服务端渲染和Vue浏览器端渲染的性能对比
Vue 2.0 开始支持服务端渲染的功能,所以本文章也是基于vue 2.0以上版本.网上对于服务端渲染的资料还是比较少,最经典的莫过于Vue作者尤雨溪大神的 vue-hacker-news.本人在公司 ...
- Egg + Vue 服务端渲染工程化实现
在实现 egg + vue 服务端渲染工程化实现之前,我们先来看看前面两篇关于Webpack构建和Egg的文章: 在 Webpack工程化解决方案easywebpack 文章中我们提到了基于 Vue ...
- Vue服务端渲染 VS Vue浏览器端渲染)
Vue 2.0 开始支持服务端渲染的功能,所以本文章也是基于vue 2.0以上版本.网上对于服务端渲染的资料还是比较少,最经典的莫过于Vue作者尤雨溪大神的 vue-hacker-news.本人在公司 ...
随机推荐
- Topic路由模式
原本理解的不够彻底,程序总是不太对.所以查询了资料,关于这种模式的意思做了仔细的解读,复制的文字. 一:介绍 1.模式 2.知识点 其中,#可以匹配一个或者多个字符 其中,*可以匹配一个字符 3.仔细 ...
- python--yield and generator(生成器)简述
1.想象一个场景: 设想,我想要100个素数,然后对它们累加求和. 通常的想法是,找一个一次性至少能提供100个素数的工具(函数),让它把这100个素数交给我(用return 一次性返回含 ...
- 命令:hash
简介 hash命令是bash的内置命令. 我们知道在bash中执行外部命令,会根据环境变量PATH来逐一搜索命令的路径. hash就是用于记住命令的路径,并且在下次执行命令的时候直接通过hash获取而 ...
- convert时间格式转换参数表
本文摘自:http://blog.csdn.net/zc19820620/article/details/2043829 CONVERT (data_type[(length)], expressio ...
- u3d 鼠标点击位置,物体移动过去。 U3d mouse clicks position, objects move past.
u3d 鼠标点击位置,物体移动过去. U3d mouse clicks position, objects move past. 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱: ...
- 洛谷P1265 公路修建(Prim)
To 洛谷.1265 公路修建 题目描述 某国有n个城市,它们互相之间没有公路相通,因此交通十分不便.为解决这一“行路难”的问题,政府决定修建公路.修建公路的任务由各城市共同完成. 修建工程分若干轮完 ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第三课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 通过Queue方法实现进程间通信
from multiprocessing import Process,Queue import time def write(q): ): q.put(i) # time.sleep() print ...
- android TextView如何换行?
具体代码是: rb_zuotian.setText("第一行"+"\n"+"第二行"); rb_jintian.setText(DateUt ...
- 2016年3月9日Android实习日记
1. 解决 org.eclipse.swt.SWTException: Graphic is disposed 问题. 参考:http://www.xuebuyuan.com/1896964.html ...