SSR
SSR(Server side rendering)服务器端渲染。
vue.js可以将同一个组件渲染为服务器端的HTML字符串,将它们直接发送到浏览器,最后将静态标记“混合”为客户端上完全交互的应用程序。这种在服务器和客户端都可以运行的代码程序,也叫做“同构”。
为什么要使用服务端渲染?
1:SEO(搜索引擎优化),页面异步获取内容;
2:希望用户更快速地看到完整渲染的页面,从而提高用户体验。
一、编写服务器端渲染的配置文件
首先需要在项目根目录里面找到build文件夹,然后在下面新建一个webpack.config.server.js文件,具体配置代码如下:
const path = require('path')
const ExtractPlugin = require('extract-text-webpack-plugin')
const webpack = require('webpack')
const merge = require('webpack-merge')
const baseConfig = require('./webpack.config.base')
const VueServerPlugin = require('vue-server-renderer/server-plugin')
let config
config = merge(baseConfig, {
target: 'node',
entry: path.join(__dirname, '../client/server-entry.js'),
devtool: 'source-map',
output: {
libraryTarget: 'commonjs2',
filename: 'server-entry.js',
path: path.join(__dirname, '../server-build')
},
externals: Object.keys(require('../package.json').dependencies),
module: {
rules: [
{
test: /\.styl/,
use: ExtractPlugin.extract({
fallback: 'vue-style-loader',
use: [
'css-loader',
{
loader: 'postcss-loader',
options: {
sourceMap: true
}
},
'stylus-loader'
]
})
}
]
},
plugins: [
new ExtractPlugin('styles.[contentHash:8].css'),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
'process.env.VUE_ENV': '"server"'
}),
new VueServerPlugin()
]
})
module.exports = config
分析:http://www.dalbll.com/Group/Topic/Vue/8825
浙公网安备 33010602011771号