spu*_*dly 5 javascript server-side client-side reactjs react-dom
我需要在客户端呈现顶级 html 标签(例如<html><head>...</head><body></body></html>)。结果将被注入到 iframe 中。在服务器上,我会使用renderToStaticMarkupfrom 的函数react-dom/server,但仅客户端react-dom没有此函数。
可以react-dom/server在最新版本的react(当前为15.3.0)中的客户端上运行吗?如果是这样,React 开发团队是否有任何迹象表明它将在未来版本中继续在客户端上受到支持?
长话短说:博士:是的。
我验证了它可以在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>
Run Code Online (Sandbox Code Playgroud)
当然,如果你这样做,你可能会被解雇......
幸运的是,他们还创建了一个客户端版本的react-dom/server(http://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 包装器)。
我只能假设,如果 React 团队努力为其创建浏览器版本,那么它将继续在客户端工作,并将在未来继续得到支持。