Skip to main content

编译器和 API

服务器端组件 API

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

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

Unlike client-side components, server-side components don't have a lifespan after you render them — their whole job is to create some HTML and CSS. For that reason, the API is somewhat different.

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

A server-side component exposes a render method that can be called with optional props. It returns an object with head, html, and css properties, where head contains the contents of any <svelte:head> elements encountered.

你可以使用 svelte/register 将 Svelte 组件直接导入到 Node 中。

You can import a Svelte component directly into Node using svelte/register.

ts
require('svelte/register');
const App = require('./App.svelte').default;
const { head, html, css } = App.render({
answer: 42
});

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

The .render() method accepts the following parameters:

parameter default description
props {} 提供给组件的属性对象
options {} 选项对象

options 对象采用以下选项:

The options object takes in the following options:

option default description
context new Map() 提供给组件的 Map 个根级上下文键值对
ts
const { head, html, css } = App.render(
// props
{ answer: 42 },
// options
{
context: new Map([['context-key', 'context-value']])
}
);