我想使用Angular Universal在Angular应用中制作SSR。
SSR有效,但是用Stencil制作的Web组件未呈现(禁用JS时不起作用)。
LitElement和Vanilla JS Web组件也不起作用。
我发现Stencil具有dist-hydrate-script
输出,可以使其正常工作。
但是我还没有找到有关它的任何文档,因此查看源代码也无济于事。 (我不知道如何使用hydrateDocument()
或renderToString()
方法。)
谢谢=)
答案 0 :(得分:1)
https://github.com/sajTempler/stencil-ssr/blob/master/example_endpoint/server/index.js#L4
在模板配置中添加到您的输出目标
{ type: 'dist-hydrate-script' },
这将创建您可以在您的服务器上使用的 Hydrate 应用程序
const { renderToString } = require('../client/hydrate');
并使用快递:
app.get('/', async (_req, res) => {
const { html } = await renderToString("<my-component></my-component>", {
prettyHtml: true
})
res.send(html);
})