const result = Component.render(...)
与客户端组件不同,服务器端组件在渲染后没有生命周期——它们的全部任务是创建一些HTML和CSS。因此,API有些不同。
服务器端组件公开了一个 render
方法,可以用可选的属性(props)调用。它返回一个对象,包含 head
、html
和 css
属性,其中 head
包含了所有遇到的 <svelte:head>
元素的内容。
您可以直接使用 svelte/register
将 Svelte 组件导入 Node 环境中。
require('svelte/register');
const App = require('./App.svelte').default;
const { head, html, css } = App.render({
answer: 42 // 假设组件需要一个名为 answer 的属性
});
.render()
方法接受以下参数:
参数 | 默认值 | 描述 |
---|---|---|
props |
{} |
供应给组件的属性对象 |
options |
{} |
选项对象 |
options
对象包含以下选项:
选项 | 默认值 | 描述 |
---|---|---|
context |
new Map() |
供应给组件的根级别上下文键值对的 Map |
const { head, html, css } = App.render(
// 属性
{
answer: 42
},
// 选项
{
context: new Map([['context-key', 'context-value']]) // 传递根级别上下文
}
);
这样,您就可以在服务器端渲染 Svelte 组件,获取生成的 HTML、CSS 和嵌入在 <svelte:head>
中的内容。