1. const result = Component.render(...)

    与客户端组件不同,服务器端组件在渲染后没有生命周期——它们的全部任务是创建一些HTML和CSS。因此,API有些不同。

    服务器端组件公开了一个 render 方法,可以用可选的属性(props)调用。它返回一个对象,包含 headhtmlcss 属性,其中 head 包含了所有遇到的 <svelte:head> 元素的内容。

    您可以直接使用 svelte/register 将 Svelte 组件导入 Node 环境中。

    1. require('svelte/register');
    2. const App = require('./App.svelte').default;
    3. const { head, html, css } = App.render({
    4. answer: 42 // 假设组件需要一个名为 answer 的属性
    5. });

    .render() 方法接受以下参数:

    参数 默认值 描述
    props {} 供应给组件的属性对象
    options {} 选项对象

    options 对象包含以下选项:

    选项 默认值 描述
    context new Map() 供应给组件的根级别上下文键值对的 Map
    1. const { head, html, css } = App.render(
    2. // 属性
    3. {
    4. answer: 42
    5. },
    6. // 选项
    7. {
    8. context: new Map([['context-key', 'context-value']]) // 传递根级别上下文
    9. }
    10. );

    这样,您就可以在服务器端渲染 Svelte 组件,获取生成的 HTML、CSS 和嵌入在 <svelte:head> 中的内容。