react-dom / server是否在客户端工作?

时间:2016-07-29 19:31:11

标签: javascript reactjs client-side server-side react-dom

我需要在客户端呈现顶级html标记(例如,<html><head>...</head><body></body></html>)。结果将被注入iframe。在服务器上,我会使用renderToStaticMarkup中的react-dom/server函数,但仅限客户react-dom不具备此功能。

react-dom/server将在最新版本的react(目前为15.3.0)中使用客户端吗?如果是这样,反应开发团队是否有任何指示在未来的版本中它将继续在客户端上得到支持?

1 个答案:

答案 0 :(得分:3)

tl;博士:是的。

我确认它适用于react@15.3.0。 facebook / 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(react-dom-server-15.3.0.min.js)的客户端版本。那个剧本并不多。它只是将React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED公开为ReactDOMServer(使用UMD包装器)。

我只能假设,如果反应小组努力为其创建浏览器构建,那么它将继续在客户端工作,并将在未来继续得到支持。