4

我需要在客户端呈现顶级 html 标签(例如,<html><head>...</head><body></body></html>)。结果将被注入到 iframe 中。在服务器上,我会使用renderToStaticMarkupfrom 的功能react-dom/server,但仅客户端react-dom没有此功能。

react-dom/server可以在最新版本的 react(当前为 15.3.0)中在客户端上工作吗?如果是这样,react 开发团队是否有任何迹象表明它将在未来的版本中继续在客户端上得到支持?

4

1 回答 1

2

tl;博士:是的。

我验证它在react@15.3.0. facebook/react 团队实际上将其保留为 react 本身的一部分,但仅将其公开为React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED. 如果你愿意,你可以直接使用它:

var ReactDOMServer = React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
console.log(ReactDOMServer.renderToStaticMarkup(<div />)); // => <div></div>

当然,如果你这样做,你可能会被解雇......

react-dom-server-15.3.0.min.js幸运的是,他们还创建了 react-dom/server ( )的客户端版本。那个脚本没有太多内容。它所做的只是暴露React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED为 ReactDOMServer(使用 UMD 包装器)。

我只能假设,如果 React 团队努力为它创建浏览器构建,它打算继续在客户端工作,并将在未来继续得到支持。

于 2016-07-29T20:06:15.437 回答