帮助
支持我们

服务器端渲染

服务器端渲染(通常缩写为“SSR”)允许您将应用程序渲染为 HTML 字符串,该字符串可以发送到客户端以改善加载时间。除此之外,还有其他场景(如测试),其中 SSR 被证明非常有用。



安装

Preact 的服务器端渲染器位于其 自己的存储库 中,可以通过您选择的打包器进行安装

npm install -S preact-render-to-string

在上述命令完成后,我们可以立即开始使用它。API 表面相当小,可以通过一个简单的片段最好地解释

import render from 'preact-render-to-string';
import { h } from 'preact';

const App = <div class="foo">content</div>;

console.log(render(App));
// <div class="foo">content</div>

浅层渲染

出于某些目的,通常最好不渲染整个树,而只渲染一层。为此,我们有一个浅层渲染器,它将以名称而不是返回值打印子组件。

import { shallow } from 'preact-render-to-string';
import { h } from 'preact';

const Foo = () => <div>foo</div>;
const App = <div class="foo"><Foo /></div>;

console.log(shallow(App));
// <div class="foo"><Foo /></div>

漂亮模式

如果您需要以更人性化的方式获取渲染输出,我们为您提供了保障!通过传递 pretty 选项,我们将保留空格并按预期缩进输出。

import render from 'preact-render-to-string/jsx';
import { h } from 'preact';

const Foo = () => <div>foo</div>;
const App = <div class="foo"><Foo /></div>;

console.log(render(App, {}, { pretty: true }));
// Logs:
// <div class="foo">
//   <div>foo</div>
// </div>

JSX 模式

如果您正在进行任何类型的快照测试,JSX 渲染模式特别有用。它将输出渲染为 JSX 中编写的形式。

import render from 'preact-render-to-string/jsx';
import { h } from 'preact';

const App = <div data-foo={true} />;

console.log(render(App));
// Logs: <div data-foo={true} />