尝试https://ssr.vuejs.org/guide/#using-a-page-template的指南中的示例,但教程中肯定缺少某些内容。
const Vue = require('vue');
const server = require('express')();
const vssr = require('vue-server-renderer');
server.get('*', (req, res) => {
const renderer = vssr.createRenderer({
template: require('fs').readFileSync('./templates/index.html', 'utf-8')
});
const context = {
title: 'hello',
meta: `
<meta ...>
<meta ...>
`
};
const app = new Vue({});
renderer.renderToString(app, context, (err, html) => {
if (err) {
console.log(err);
process.exit();
}
console.log(html);
});
});
server.listen(6081);
打开页面时,出现错误消息:
错误:呈现函数或模板未在组件中定义:匿名
在normalizeRender
答案 0 :(得分:0)
尝试在Vue实例中提供template
属性或render
函数。
new Vue({ template: `<div>Hello there!</div>` })
以下几行仅表示您要为渲染器使用自己的页面模板,稍后将在其中插入应用程序的标记。
const renderer = vssr.createRenderer({
template: require('fs').readFileSync('./templates/index.html', 'utf-8')
});